Javascript regex match Twitter username, but exclude colon -
using twitter api trying link @ symbols persons account eg. @stackoverflow goes https://twitter.com/stackoverflow.
this working below except when looking @ retweets have syntax
rt @stackoverflow: the first regex works keeps : remove last character if :. how can match @stackoverflow pattern remove : it. (i don't want remove : whole string may have links in it)
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 console.log(str) // returns rt <a target="_blank" href="https://twitter.com/stackoverflow:">@stackoverflow:</a> great ...
instead of /@(\s*)/g use /@(\w+)/gi, because twitter usernames confined \w represents: a-z, , 0-9 , _. stated in twitter support article:
a username can contain alphanumeric characters (letters a-z, numbers 0-9) exception of underscores, noted above. check make sure desired username doesn't contain symbols, dashes, or spaces.
var str = 'rt @stackoverflow: great ...' str = str.replace(/@(\w+)/gi, '<a target="_blank" href="https://twitter.com/$1">@$1</a>') console.log(str)
Comments
Post a Comment