搜索实施

时间:2013-03-28 12:48:49

标签: javascript html regex search

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

RegExp(name, 'i')

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

你应该创建一些regex escapper来逃避所有元字符。

我认为这个功能适合:(找到Is there a RegExp.escape function in JavaScript?

RegExp.escape= function(s) {
    return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')
};