我想搜索一个不区分大小写的字符串,但是用原来字符串的大小写更改子字符串。
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"));上面的代码给出了最后一个蓝色的,但是我希望它是FiRst,最后作为我字符串的大小写顺序。
也许可以使用indexof()方法,但是可能有一种简单有效的方法。
发布于 2012-12-12 11:28:10
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给出的解决方案可能会有帮助。
发布于 2012-12-12 11:26:50
只需使用第一个选项的捕获组即可。
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"https://stackoverflow.com/questions/13838468
复制相似问题