给定针头和大海捞针...我想在针头周围放上粗体标签。那么我将在replace()中使用什么正则表达式?我希望将SPACE用作分隔符,并且希望搜索不区分大小写
所以说针是“牛”,干草堆是
cows at www.cows.com, milk some COWS
会变成
<b>cows</b> at www.cows.com, milk some <b>COWS</b>
关键字也应该能够有空格,所以如果关键字是“who is mgmt” ...
great band. who is mgmt btw?
会变成
great band. <b>who is mgmt</b> btw?
谢谢
最佳答案
这是一个正则表达式,可以满足您的需求:
(^|\s)(cows)(\s|$)
在JS中,替换是这样的:
myString.replace(/(^|\s)(cows)(\s|$)/ig, '$1<b>$2</b>$3');
巧妙地包装在一个可重用的函数中:
function updateHaystack(input, needle) {
return input.replace(new RegExp('(^|\\s)(' + needle + ')(\\s|$)','ig'), '$1<b>$2</b>$3');
}
var markup = document.getElementById('somediv').innerHTML;
var output = updateHaystack(markup, 'cows');
document.getElementById('somediv').innerHTML = output;