1

入力された正規表現が JavaScript で有効かどうかをテストする方法があるかどうか疑問に思っていました。

何かのようなもの

if ( isValidRegexp($("#regexp")) {
...
}

この質問のような正規表現は必要ありません有効な正規表現に一致する正規表現

4

2 に答える 2

3

この関数は次のように作成できます。

function isValidRE(str) {
   var isValid=true;
   try {
      var re = new RegExp(str, "g");
   } catch(err) {
      isValid=false;
   }
   return isValid;
}

console.log(isValidRE("\d")); // true
console.log(isValidRE("(\d")); // false

ライブデモ: http://ideone.com/9z2UKW

于 2013-04-26T07:48:07.487 に答える
2

OK、とても簡単です。新しい RegExp オブジェクトを作成し、エラーをキャッチするだけです。

try{
   var r = new RegExp("my regex string");
}
catch(e){
    //regex is invalid
}

これが実際の例です

于 2013-04-26T07:47:42.987 に答える