用户输入RegExp不区分大小写

我正在尝试对单个页面上的表执行不区分大小写的搜索,使用用户输入键,隐藏与contains不匹配的表行,并突出显示匹配的文本。 隐藏/显示工作正常,但匹配文本的亮点无法使用RegExp和’i’。

chrome检查器中的错误:“从另一个构建一个RegExp时无法提供标志”

我搜索了这个,发现什么都没有。

如果我只使用testcase变量并输入正确的capilisation,则突出显示有效。

任何建议表示赞赏,我需要在英格兰赢得世界杯之前解决这个问题(…我可能有同样多的机会。):-D

$('input[name="search"]').live('keyup',function(){ var searchterm = $(this).val(); if(searchterm.length > 2) { ///make contains: non case sensitive jQuery.expr[":"].contains = jQuery.expr.createPseudo(function(arg) { return function( elem ) { return jQuery(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0; }; }); $('tr.data-row:contains("' + searchterm + '")').show(); $('tr.data-row:not(:contains("' + searchterm + '"))').hide(); $(".heading").hide(); $('.data-row p').each(function() { var textcase = $(this).text(); var term = searchterm; var text = new RegExp(/textcase/,"i"); $(this).html(text.replace(term,''+searchterm+'')); }); } }); 

常用表达

  1. new RegExp('chicken', 'gm')
  2. new RegExp(/chicken/gm)

  1. new RegExp('/chicken/', 'gm')
  2. new RegExp(/chicken/, 'gm')

当传入一个字符串作为正则表达式时,’gm’部分需要是一个字符串并作为第二个参数传入。

当传入/…/作为正则表达式时,’gm’部分需要在结束后立即进入/。