给定针头和大海捞针...我想在针头周围放上粗体标签。那么我将在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;

09-10 02:50