我正在开发多个高级表达式来检测 4 件事:网址、推特用户名、主题标签和十六进制颜色。如果您放置相同的内容,例如 4 个不同的主题标签、网址或颜色,效果会很好。但是,当您放置例如主题标签和诸如 url 之类的不同内容时,主题标签就会消失。在这里你可以看到 RegularExp:
var RegularExp = {
twitter: /(^|[,\s])@(\w{1,15})/g,
color: /(^|[,\s])#((?:[a-fA-F0-9]){3}|(?:[a-fA-F0-9]){6})/g,
hashtag: /(^|[,\s])#(\w{1,15})/g,
url: /(^|\s)(((http(s)?:\/\/|ftp(s)?:\/\/)?([a-zA-Z0-9_-]+\.)?(?:[a-zA-Z0-9]+)(?:\.[a-z]{2,4}){1,2})(\/.*)*)/g
},
Replacer = {
twitter: "$1<a rel='nofollow' target='_blank' href='http://twitter.com/$2'>@$2</a>",
color: "$1<span class='hex-color' style='background-color:#$2 !important'>#$2</span>",
hashtag: "$1<a rel='nofollow' target='_blank' href='http://twitter.com/search?q=%23$2&src=hash'>#$2</a>",
url: "$1<a rel='nofollow' target='_blank' href='$2'>$2</a>"
};
您可以在这里尝试:http: //jsfiddle.net/esa_u7/KrTMW/ 在第一个文本区域中写入:“#fff, #000, #00f” 不带斜杠(如您所见),然后添加一个 twitter 用户名像@example。为什么所有标签都消失了。