正则表达式将在一个范围内包装所有用户名,假设它们以at符号开头?
var strA = '@A ipsum @B'; // Original Text
var strB = '<span>@A</span> ipsum <span>@B</span>'; // After Regex
答案 0 :(得分:1)
可能是这样的:
/(?:\W|^)(@(\w+))/
Catch group 1包含您的用户名和catch {2,而不包含@
。
有点笨拙,但是(上次我检查过)Javascript的正则表达式不支持lookbehinds,这是最干净的方法,我会说。
答案 1 :(得分:1)
我去了:
strB = strA.replace(/(@[^\s+])/g, '<span class="hilite">$1</span>');
答案 2 :(得分:0)
我会使用/(^|\s)(@\w+)\b/g
:
string.replace(/(^|\s)(@\w+)\b/g, "$1<span>$2</span>");
根据用户名中允许的字符数量,可能需要进行一些修改。