JS在特定时间范围内执行正则表达式

问题描述

| 是否可以在特定时间范围内执行正则表达式?例如,我们执行regex r并等待它最多完成5秒钟,否则我们将其取消。这是任何人都有经验的东西吗?     

解决方法

        我不太确定“执行”是什么意思,但是在某些情况下,有可能将阻塞操作变成循环:
s = \"long thing\"
re = /[a-z]/g

// blocks
matches = s.match(re)

// doesn\'t block
matches = []
while(m = re.exec(s)) {
 matches.push(m[0])
 do your time check here
}
    ,        我现在唯一想到的方法是使用WebWorkers API在单独的线程中运行Regex,并在主线程中使用计时器来表示\'timeout \'并使用
myTimer.terminate();
语法终止工作线程。但是,这会给表带来很多问题,因为工作线程没有对DOM的任何访问权,并且其行为完全类似于简单的消息总线。     ,        在JavaScript中评估正则表达式是一项阻止操作,因此您没有时间计时并取消其执行。一种可能的解决方案是使用网络工作者-但是我对此没有任何经验。