Javascript:测试字符串是否是正则表达式

时间:2014-04-08 16:06:28

标签: javascript regex

我有一个用户创建的字符串,用作正则表达式。如何测试此字符串的有效性?

我的第一个想法是使用正则表达式来测试它,但是,考虑到它,正则表达式语法本身不是常规语言,所以这不起作用。

我的第二个想法是尝试使用字符串创建RegExp对象。但是,文档没有提到当字符串是无效的正则表达式时应该发生什么。

还有其他想法吗?

1 个答案:

答案 0 :(得分:3)

使用try/catch确定给定字符串是否能够创建有效的RegExp对象:

s = "(abc"; // invalid input regex string
valid = false;
try {
   new RegExp(s);
   valid = true; // reached here regex is valid
} catch(ex) {}

console.log(valid); // false