raw*_*rrr 5 javascript regex bit.ly
我想围绕的所有实例@_______,#________以及http://________用锚标记在一个通行证.
例如,考虑这个Twitter消息:
快速的棕色狐狸@Spreadthemovie跳过懒狗#cow http:// URL
使用所需的正则表达式模式运行它将产生:
The quick brown fox <a href="a">@Spreadthemovie</a> jumps over the lazy
dog <a href="b">#cow</a> <a href="c">http://URL</a>
Run Code Online (Sandbox Code Playgroud)
只有围绕与开头的单词@,#或http://使dog@gmail.com不会成为dog<b>@gmail.com</b>.
s/(?<!\w)(@\w*|#\w*|http:\/\/[\w\/\.?=]*\w)/<a>$1<\/a>/g
Run Code Online (Sandbox Code Playgroud)
我想这样就可以了。如果@...、#... 或 http... 前面有数字或字母,则它不会匹配,这将阻止电子邮件。请针对输入集进行测试,并报告任何失败,以便我能够满足它。
尤其是 URL,相当困难。现在我犯了保守的错误。如果您愿意,可以将其更改为仅在点、空格和括号处停止。
现在,对于 @、# 和 http 的不同链接...您必须使用函数进行替换,如另一个答案所示。
通过三遍,只需执行以下操作:
s/(?<!\w)(http:\/\/[\w\/\.?=]*\w)/<a href="c">$1<\/a>/g
s/(?<!\w)(#\w*)/<a href="b">$1<\/a>/g
s/(?<!\w)(@\w*)/<a href="a">$1<\/a>/g
Run Code Online (Sandbox Code Playgroud)