我的网站上的搜索是使用正则表达式实现的:
RegExp(name, 'i')
其中“名称”是输入块的值。问题是点匹配任何字符,当我输入点时,搜索会给出错误的结果。我应该如何改变正则表达式的模式来排除这个问题?
我的网站上的搜索是使用正则表达式实现的:
RegExp(name, 'i')
其中“名称”是输入块的值。问题是点匹配任何字符,当我输入点时,搜索会给出错误的结果。我应该如何改变正则表达式的模式来排除这个问题?
如果您不想允许某些正则表达式,那么您可以进行搜索/替换以转义这些值,例如.
变成\.
.
您需要在提示中澄清某些正则表达式将被视为文字。
您应该创建一些正则表达式转义器来转义所有元字符。
我认为这个函数会适合:(在Is there a RegExp.escape function in JavaScript? 中找到)
RegExp.escape= function(s) {
return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')
};