我希望搜索一个不区分大小写的字符串,但是用原始字符串的大小写字母更改子字符串。
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()方法,但可能有一种简单有效的方法。
答案 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给出的解决方案可能有帮助...