Javascript 获取jQuery中未终止字符类的错误
未捕获的语法错误:无效的正则表达式:/[/:未终止的字符类未捕获的语法错误:无效的正则表达式:/[/:未终止的字符类Javascript 获取jQuery中未终止字符类的错误,javascript,jquery,Javascript,Jquery,未捕获的语法错误:无效的正则表达式:/[/:未终止的字符类未捕获的语法错误:无效的正则表达式:/[/:未终止的字符类 // Searching in ListBox $('#Search').keyup(function () { var valThis = $(this).val().toUpperCase(); $('#lstDCU > option').each(function () { var itemText
// Searching in ListBox
$('#Search').keyup(function () {
var valThis = $(this).val().toUpperCase();
$('#lstDCU > option').each(function () {
var itemText = $(this).text().toUpperCase();
((itemText.search(valThis) != -1) ? $(this).show() : $(this).hide());
});
});
是的,这是一个运行时错误 该方法需要一个正则表达式作为其参数,但如果要传递字符串,则应为正则表达式特殊字符(如
^、|
等)对其进行转义
if (!RegExp.escape) {
RegExp.escape = function (value) {
return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")
};
}
$('#Search').keyup(function () {
var valThis = RegExp.escape($(this).val().toUpperCase());
$('#lstDCU > option').each(function () {
var itemText = $(this).text().toUpperCase();
((itemText.search(valThis) != -1) ? $(this).show() : $(this).hide());
});
});
演示:我不认为它来自此代码…如果是,那么在源文件中有一些不可见的字符,我得到了错误((itemText.search(valThis)!=-1)?$(this.show():$(this.hide());它只对$,[,^等特殊字符抛出错误