唯一突出显示用户名

时间:2013-01-10 10:56:46

标签: javascript jquery cross-browser

在我的项目中,每当用@表示时,我都会尝试突出显示文本(仅限用户名)。我正在使用以下功能:

function replaceMessage(data, username) {
    return data.replace("@" + username, "<strong>@" + username + "</strong>");
}

上述功能正在运行,但如果有两个有效用户名称如“Sam”和“Samuel”,则应用功能后的结果将变为如下所示:

Sam Sam uel (而不是Samuel)。

如何解决这个问题?

我使用正则表达式并不是很好,我尝试了以下在IE8中无效的功能..

function replaceMessage(data, username) {
    return data.replace(/\b + "@" + username + /g, "<strong>@" + username + "</strong>");
}

1 个答案:

答案 0 :(得分:3)

您将需要特殊符号\b,表示正则表达式中的单词分隔符:

function replaceMessage(data, username) {
    var re = new RegExp('@' + username + '\\b', 'g');
    return data.replace(re, "<strong>$0</strong>");
}