特定の時間枠内で正規表現を実行できますか?たとえば、正規表現rを実行して最大5秒間待機する。そうでなければ取り消す。誰かが経験したことはありますか?JSは特定の時間枠内で正規表現を実行します
1
A
答えて
0
:
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
}
2
私が考えることができる唯一の方法は、別のスレッドでWebWorkers APIを使用して、メインスレッドのタイマーを使用して 'タイムアウト'を示し、myTimer.terminate();
構文を使用してワーカースレッドを強制終了することです。しかし、ワーカースレッドはDOMへのアクセス権を持たず、純粋なメッセージバスのように動作するため、テーブル全体に問題が発生します。
1
JavaScriptで正規表現を評価するのはブロック操作なので、実行の時間とキャンセルの機会はありません。可能な解決策はweb workersを使用することです - しかし、私はそれらの経験がありません。私はあなたが「実行」によって何を意味するかは非常にわからないんだけど、ある特定のケースでは、ループにブロッキング操作を有効にすることが可能です
関連する問題
- 1. 正規表現は、時間
- 2. 正規表現を実行する正規表現をリストします
- 3. jsの特定の正規表現の後にマッチする
- 4. JS正規表現
- 5. grep正規表現で特定のメールを検索する正規表現
- 6. ユーザー正規表現は、Java正規表現で特定の値以上
- 7. 正規表現は、特定のサブ
- 8. 正規表現は、特定のパターン
- 9. 正規表現は、特定のバージョン
- 10. ファイル内の特殊文字パスワードを正規表現する正規表現
- 11. 正規表現は特定のファイルを除外します
- 12. はブロック内の特定の正規表現を許可します
- 13. 時間形式の正規表現
- 14. 正規表現は特定の文字で始まります
- 15. パターン内の特定のパターンを除外する正規表現
- 16. Android GCMNetworkManager - 毎日特定の時間枠の間にジョブを実行する
- 17. 正規表現(php)の特定条件を削除する正規表現
- 18. JS、正規表現、奇妙な行動
- 19. JSの正規表現Y
- 20. JSの正規表現、スペース
- 21. 実行時パラメータとの正規表現の仕方は?
- 22. 正規表現の正規表現(HHh MMs SSs)(任意の時間付き)
- 23. 特定のフォーラム用の正規表現
- 24. 特定のパターンの正規表現
- 25. OCaml正規表現日付時間
- 26. 正規表現エキスの特定部分
- 27. 特定の正規表現関数
- 28. 正規表現 - 特定の範囲
- 29. Laravelの特定の時間枠内のレコードを取得する
- 30. 特定のURLパターンを特定するPHPの正規表現
方法は、非ブロック第2の例でありますか?私は 're.exec(s)'が1回の呼び出しで 's'文字列全体を評価すると考えていました。つまり、' while'ループは1回だけ実行されます。しかし私は間違っている可能性があります。 –
実際には、それをスクラップする - 私は今あなたが意味するものを参照してください。しかし、これは確実に一致間の時間が5秒未満の場合にのみ有効です。つまり、 'while'ループ内のコードは一致が発生したときにのみ実行され、5秒以上が一致した場合には、一致が見つかりました。そうですか? –
おかげさまで、これは公正な点です.Web Workersのブラウザサポートは限られていますが、ソリューションではJavascriptのネイティブ言語機能が使用されていることは明らかです。 –