带有不区分大小写标志的正则表达式javascript';i';全球经济也行不通
我正在研究一种方法来突出显示在字符串中找到的查询文本,其思想是在找到的每个事件中添加粗体标记。问题是,当我尝试用g替换所有出现的查询文本时,如果i标志不起作用,它看起来会忽略i标志 这就是功能:带有不区分大小写标志的正则表达式javascript';i';全球经济也行不通,javascript,regex,string,regexp-replace,Javascript,Regex,String,Regexp Replace,我正在研究一种方法来突出显示在字符串中找到的查询文本,其思想是在找到的每个事件中添加粗体标记。问题是,当我尝试用g替换所有出现的查询文本时,如果i标志不起作用,它看起来会忽略i标志 这就是功能: highlight = function(text,q){ if (text.indexOf(q) != -1) { text = text.replace(new RegExp("\\b".concat(q, "\\b"), 'gi'), '<b>
highlight = function(text,q){
if (text.indexOf(q) != -1) {
text = text.replace(new RegExp("\\b".concat(q, "\\b"), 'gi'), '<b>' + q + '</b>');
} else{
q = q.split(' ');
q.forEach(function (item) {
if (text.indexOf(item) != -1) text = text.replace(new RegExp("\\b".concat(item, "\\b"), 'gi'), '<b>' + item + '</b>');
});
}
return text;
}
highlight=函数(文本,q){
if(text.indexOf(q)!=-1){
text=text.replace(新的RegExp(“\\b”.concat(q,“\\b”),“gi”),“+q+”;
}否则{
q=q.分割(“”);
q、 forEach(功能(项目){
如果(text.indexOf(item)!=-1)text=text.replace(新的RegExp(“\\b”.concat(item,“\\b”),“gi”),“+item+”;
});
}
返回文本;
}
请随意测试,下面是我测试的两个示例:
突出显示('is THIS','THIS')=>这是这吗
有效强>
突出显示('is THIS','THIS')=>is THIS
不试试这样的方法:
highlight = function(text, q) {
return text.replace(new RegExp("\\b" + q + "\\b", 'gi'),
function(x) {
return '<b>' + x + '</b>';
});
}
highlight=函数(文本,q){
返回文本。替换(新的RegExp(“\\b”+q+“\\b”,'gi'),
功能(x){
返回“+x+”;
});
}
是否indexOf()
不区分大小写?除此之外,您还有另一个问题,此
转换为此
是的,该问题现在未解决,但如果您有解决方案,请让我现在感谢它工作正常,谢谢,它不会用此取代此。