0

我的网站上的搜索是使用正则表达式实现的:

RegExp(name, 'i')

其中“名称”是输入块的值。问题是点匹配任何字符,当我输入点时,搜索会给出错误的结果。我应该如何改变正则表达式的模式来排除这个问题?

4

2 回答 2

0

如果您不想允许某些正则表达式,那么您可以进行搜索/替换以转义这些值,例如.变成\..

您需要在提示中澄清某些正则表达式将被视为文字。

于 2013-03-28T12:52:31.177 回答
0

您应该创建一些正则表达式转义器来转义所有元字符。

我认为这个函数会适合:(在Is there a RegExp.escape function in JavaScript? 中找到)

RegExp.escape= function(s) {
    return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')
};
于 2013-03-28T12:52:59.267 回答