我有一个用户创建的字符串,用作正则表达式。如何测试此字符串的有效性?
我的第一个想法是使用正则表达式来测试它,但是,考虑到它,正则表达式语法本身不是常规语言,所以这不起作用。
我的第二个想法是尝试使用字符串创建RegExp
对象。但是,文档没有提到当字符串是无效的正则表达式时应该发生什么。
还有其他想法吗?
答案 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