为什么用户点击搜索按钮时会弹出屏幕?

时间:2013-07-19 16:48:26

标签: javascript jquery regex

当用户从页面搜索文本时,为什么会弹出屏幕。 我会解释这个问题。 点击按钮我转到下一页。在下一页上有搜索功能实现,但是当用户搜索此文本时,它会弹出屏幕并转到上一个。我认为我的应用程序崩溃了。

以下文字 1)“(+?)”

2)q(?= u), 3)q(?!u)

3)(?

你能告诉我如何消除这种崩溃。这是我的代码..

http://jsfiddle.net/ravi1989/4BAau/6/

    var searchTermRegEx = new RegExp('('+searchTerm+')', "ig");

这不起作用。

2 个答案:

答案 0 :(得分:1)

无效的RegExp模式将引发异常。只需catch and resolve it

var searchTermRegEx, matches, selector = selector || "#realTimeContents";
try {
    searchTermRegEx = new RegExp('('+searchTerm+')', "ig");
} catch (e) {
    return false;
}

如果您想支持使用保留字符的查询,请自行转义它们,因为javascript escape以错误的方式执行此操作,例如(变为%28而不是\(。你可以事先做这样的事情:

searchTerm = searchTerm.replace(/([\(\)\.\+\?])/g, '\\$1');

答案 1 :(得分:1)

只需将js的第4行更改为:

 var searchTermRegEx = new RegExp('('+escape(searchTerm)+')', "ig");

它将转义文本,搜索将正常工作。