排除正则表达式匹配组中的特殊字符

时间:2018-10-13 08:35:18

标签: javascript regex search

因此,我正在研究具有搜索字段的内容,以突出显示数据中匹配的字符串/字符,为实现此目的,我将搜索查询作为regrex匹配组传递。例如

var pattern = new RegExp( "("+ matchThis+")" );

为了消除特殊字符,我尝试了

var pattern = new RegExp( "[^.#&]("+ matchThis+")" );

但是它不起作用。

关于如何实现上述功能的任何建议,由于我是RegExp的新手,因此几乎没有什么解释会有所帮助。

2 个答案:

答案 0 :(得分:0)

最终我找到了解决上述问题的方法。

在这种情况下,如果我从用户输入searchThis变量中删除所有特殊字符,它将非常正常。可以使用RegExp作为

来完成

var pattern = new RegExp( "("+ searchThis.replace(/[^a-z0-9]/ig, "" ) +")" );

答案 1 :(得分:0)

[^chars]构造不会消除特殊字符,只是不会接受它们。因此,我认为您的答案更符合您的需求。请记住,尽管您的代码行无效-replace函数调用未用括号关闭。另外,它没有提供第二个参数,该参数可能默认为空字符串,但是为了更清晰的代码,我将其添加。我认为应该是:

new RegExp( "(" + searchThis.replace(/[^a-z0-9]/ig, "") + ")" );