我需要在不丢失大小写的情况下替换javascript变量中的一些文本,即
"MAT" ==> "MATch string in db"
而不是"Mat" ==> "match string in db"
现在我正在做这个(不保留原来的情况):
var user_str = $("#user-input").val();
var db_match = db_match.replace(new RegExp(user_str, "ig") , '<span class="u b match">' + user_str + '</span>');
我发现人们需要替换静态文本,但在我的情况下,我需要替换可变内容。
显然这也不起作用:
var user_str = $("#user-input").val();
db_match = db_match.replace(/(user_str)/ig, "<span class=u b match>$1</span>");
知道怎么做吗?
使用一个组并构建正则表达式
var str = "test";
var text = "Test this";
var re = new RegExp("(" + str + ")","gi");
console.log(text.replace(re, "<span>$1</span>")) //"<span>Test</span> this"