JavaScript正则表达式忽略案例

问题描述:

我想匹配字符串的一部分,它应该不区分大小写。我有下面的代码,但我从来没有得到被替换的字符串。JavaScript正则表达式忽略案例

var name = 'Mohammad Azam' 
var result = name.replace('/' + searchText + '/gi', "<b>" + searchText + "</b>"); 

searchText变量将是“moha”或“mo”或“moh”。

如何用粗体标签获得匹配的东西。

+0

你要什么,以取代SEARCHTEXT?文字字符串'searchText'还是别的? – SolutionYogi 2009-07-27 01:29:43

/模式时,它的投入作为文字/有意义,而不是如果你构建串那样。 (我不上肯定100%)。

尝试

var name = 'Mohammad Azam'; 
var searchText = 'moha'; 
var result = name.replace(new RegExp('(' + searchText + ')', 'gi'), "<b>$1</b>"); 
//result is <b>Moha</b>mmad Azam 

编辑:

添加了上面的代码演示页。

Demo →

Code

我认为你正在寻找新的正则表达式,它创建一个动态的正则表达式 - 你想现在做的是匹配的字符串(不是RegExp对象):

var name = 'Mohammad Azam', searchText='moha'; 

var result = name.replace(new RegExp(searchText, 'gi'), "" + searchText + ""); result 

编辑:其实这也许正是你要找的人,请不要介意^

var name = 'Mohammad Azam', searchText='moha'; 
name.match(new RegExp(searchText , 'gi'))[0] 
name // "Moha" 
+0

嘿,我把你自己和你正在寻找的东西混淆了 - 让我知道这些锻炼中的任何一种。 – 2009-07-27 01:33:22

+0

你是对的第一次:)这是一个替代不匹配 – 2009-07-27 01:36:51