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