1

我想知道是否有一种方法可以测试输入的正则表达式在 JavaScript 中是否有效。

就像是

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

我不需要像这样的问题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

好的,所以这很容易。您只需创建一个新的 RegExp 对象并捕获错误:

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

这是一个工作示例

于 2013-04-26T07:47:42.987 回答