我有一个正则表达式:
var regex = /[..·・⋯•。~~〜><'"()%/\]/g;
我正在尝试将模式定义为字符串,然后将其声明为正则表达式,如下所示:
var charToFiltered = `[..·・⋯•。~~〜><'"()%/\]`;
var regexA = new RegExp(charToFiltered, 'g');
但是我收到以下错误:
无效的正则表达式:/[..·・⋯•。~~〜><'"((%/]/:未终止 字符类
如果将反斜杠移动到字符集的开头,它就可以工作:
var charToFiltered = `[\..·・⋯•。~~〜><'"()%/]`;
var regexA = new RegExp(charToFiltered, 'g');
console.log(regexA);
原因是您的\
变成了单个反斜杠,然后您在正则表达式中具有]
构造,这意味着字面意思是]
。因此,您的右括号成为字符类的一部分,然后您错过了实际的右]
。要解决这个问题,您需要做的就是将反斜杠移动到它不会逃脱任何东西的地方。