0

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

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,但是我希望它是第一个 LAST 作为mystring的大小写顺序

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

4

2 回答 2

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"
于 2012-12-12T11:26:50.977 回答
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:突出显示保留原始大小写但在不区分大小写模式下搜索的子字符串

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

于 2012-12-12T11:28:10.483 回答