Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么当用户单击搜索按钮时屏幕会弹出?_Javascript_Jquery_Regex - Fatal编程技术网

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

Javascript 为什么当用户单击搜索按钮时屏幕会弹出?,javascript,jquery,regex,Javascript,Jquery,Regex,当用户从页面搜索文本时,屏幕为什么会弹出。 我会解释这个问题。 点击按钮,我进入下一页。在下一页有搜索功能实现,但当用户搜索此文本时,它会弹出屏幕并转到上一页。我想我的申请要崩溃了 这些文件如下: 1)“(+?)” 2) q(?=u), 3)q(?!u) 3) (?)? 您能告诉我如何删除此崩溃。这是我的代码 这不起作用。无效的RegExp模式将引发异常。只需: 如果您想支持使用保留字符的查询,请自行转义它们,因为javascript以错误的方式执行此操作,例如,(变成%28,而不是\()。您

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

这些文件如下: 1)“(+?)”

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

3) (?)? 您能告诉我如何删除此崩溃。这是我的代码


这不起作用。

无效的
RegExp
模式将引发异常。只需:

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

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

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

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

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

这些是正则表达式语法的保留字符,因此它当然会中断您的搜索。您需要转义这些字符。但它不是搜索-…?这是我的小提琴,请检查Matthias的答案(我也编辑了一点)。
searchTerm = searchTerm.replace(/([\(\)\.\+\?])/g, '\\$1');
 var searchTermRegEx = new RegExp('('+escape(searchTerm)+')', "ig");