用区分大小写更改字符串的一部分

时间:2012-12-12 11:13:08

标签: javascript jquery

我希望搜索一个不区分大小写的字符串,但是用原始字符串的大小写字母更改子字符串。

var mystring = "FiRst Last";
var term = "first";  // it could be "FIRST" or fIRST

var re = new RegExp("^" + term, "i") ;
//option 1
//var t = mystring.replace(re,"<span style='font-weight:bold; color:Blue;'>" + term + "</span>");
//option 2
var t = mystring.replace(re,term.bold().fontcolor("Blue"));

上面的代码以蓝色显示第一个 LAST,但是我希望它是 FiRst 最后作为mystring的案例顺序

也许可以使用indexof()方法,但可能有一种简单有效的方法。

2 个答案:

答案 0 :(得分:0)

只需使用带有第一个选项的捕获组

var str = "FiRst Last";
var term = "first";

var t = str.replace( /(first)/i, "<span style='font-weight:bold; color:Blue;'>$1</span>");

t现在将包含

"<span style='font-weight:bold; color:Blue;'>FiRst</span> Last"

答案 1 :(得分:0)

var querystr = 'first';
var output = "FiRst Last";
var reg = new RegExp(querystr, 'gi');
var final_str = output.replace(reg, function(str) {return str.bold().fontcolor("Blue")});

请参阅以下链接...

Javascript: highlight substring keeping original case but searching in case insensitive mode

user113716给出的解决方案可能有帮助...