如何解决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中评估正则表达式是一项阻止操作,因此您没有时间计时并取消其执行。一种可能的解决方案是使用网络工作者-但是我对此没有任何经验。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。