当用户从页面搜索文本时,为什么会弹出屏幕。 我会解释这个问题。 点击按钮我转到下一页。在下一页上有搜索功能实现,但是当用户搜索此文本时,它会弹出屏幕并转到上一个。我认为我的应用程序崩溃了。
以下文字 1)“(+?)”
2)q(?= u), 3)q(?!u)
3)(?
你能告诉我如何消除这种崩溃。这是我的代码..
http://jsfiddle.net/ravi1989/4BAau/6/
var searchTermRegEx = new RegExp('('+searchTerm+')', "ig");
这不起作用。
答案 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");
它将转义文本,搜索将正常工作。