因此,我正在研究具有搜索字段的内容,以突出显示数据中匹配的字符串/字符,为实现此目的,我将搜索查询作为regrex匹配组传递。例如
var pattern =
new RegExp( "("+ matchThis+")" );
为了消除特殊字符,我尝试了
var pattern =
new RegExp( "[^.#&]("+ matchThis+")" );
但是它不起作用。
关于如何实现上述功能的任何建议,由于我是RegExp的新手,因此几乎没有什么解释会有所帮助。
答案 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, "") + ")" );