Javascript Regex:如何围绕以<b>标签开头的所有单词?</b>

时间:2009-07-25 01:09:06

标签: javascript regex

我想用@j {名}用<b>标签开头的大海捞针包围所有单词。我会用什么模式?

2 个答案:

答案 0 :(得分:9)

var sample = "@sample";
sample = sample.replace(/(^|\s|-)+@(\w+)/g, "<b>$&</b>");
//^^that's assuming you want the @ to stay
//if not, use $2 instead of $&

$&插入匹配的子字符串。

使用功能:

var sample = "@sample";
sample = sample.replace(/(^|\s|-)+@(\w+)/g, function(str) {
    return "<b>"+str+"</b>";
}

当您想要拥有更好或更精细的控制时,使用函数是个好主意。您可能想要处理当前匹配的部分。无论你想要什么。

查看更多here at MDC

答案 1 :(得分:0)

乔治的例子将匹配@之后的所有内容,包括some@email.com。 尝试:

function BoldMyText(text) {
    var words = text.split(" ");
    var returnText = '';

    for(var i=0;i<words.length;i++) {
         word = words[i].replace(/^@(\w+)/, '<b>$1</b>');
         returnText += ' ' + word;
    }

    return returnText;
}

var myBoldedText = BoldMyText("You should @not bold my@email.com");

如果它不是你想要的。