1. ホーム
  2. javascript

入力文字列が有効な正規表現であるかどうかを確認する方法は?

2023-09-17 15:14:50

質問

JavaScriptで、文字列がコンパイル可能な正規表現であるかどうかを確認するにはどうしたらよいでしょうか。

例えば、以下のようなjavascriptを実行すると、エラーが発生します。

var regex = new RegExp('abc ([a-z]+) ([a-z]+))');
// produces:
// Uncaught SyntaxError: Invalid regular expression: /abc ([a-z]+) ([a-z]+))/: Unmatched ')'

ある文字列が有効な正規表現であるかどうかは、どのように判断するのでしょうか?

どのように解決するのですか?

この場合 try/catch とし RegExp のコンストラクタを使用します。

var isValid = true;
try {
    new RegExp("the_regex_to_test_goes_here");
} catch(e) {
    isValid = false;
}

if(!isValid) alert("Invalid regular expression");