我正在使用Twitter API尝试将任何@符号链接到人员帐户,例如。@stackoverflow
去https://twitter.com/stackoverflow
。
除了在查看具有以下语法的转发时,这在下面运行良好
RT @stackoverflow:
第一个正则表达式工作良好,但保留了:,所以我想删除最后一个字符(如果它是):
。如何匹配@stackoverflow
模式,但要从中删除:
。(我不想:
从整个字符串中删除,因为它也可能包含链接)
var str = 'RT @stackoverflow: Great ...'
str = str.replace(/@(\S*)/g, '<a target="_blank" href="https://twitter.com/$1">@$1</a>')
str = str.replace(/:$/,"") //doesn't do anything
console.log(str) // returns RT <a target="_blank" href="https://twitter.com/stackoverflow:">@stackoverflow:</a> Great ...
而不是/@(\S*)/g
使用/@(\w+)/gi
,因为Twitter用户名完全限于\w
表示:a-z
和0-9
和_
。如本Twitter支持文章所述:
用户名只能包含字母数字字符(字母AZ,数字0-9),下划线除外,如上所述。请检查以确保所需的用户名不包含任何符号,破折号或空格。
var str = 'RT @stackoverflow: Great ...'
str = str.replace(/@(\w+)/gi, '<a target="_blank" href="https://twitter.com/$1">@$1</a>')
console.log(str)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句