JavaScript正则表达式忽略大小写

时间:2009-07-27 01:24:36

标签: javascript regex

我正在尝试匹配字符串的一部分,它应该不区分大小写。我有以下代码,但我从来没有得到替换的字符串。

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

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

如何以粗体标签获取匹配的内容。

2 个答案:

答案 0 :(得分:22)

当它作为文字输入时,

/ pattern /有意义,而不是像你那样构造字符串。 (我不是百分百肯定的。)

尝试

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

答案 1 :(得分:3)

我认为你正在寻找新的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"