描述
John
如果它位于字符串的开头或结尾和/或两侧都有空格,则此正则表达式将匹配。
匹配 John 的正则表达式:(?:\s| |^)(John)(?=\s|\r|\n|$)
此正则表达式包含最后一个正则表达式,并且还匹配所有 html 标记和纯文本 url。这里的顺序很重要,因为John
只有在 html 标记之外或未嵌入 URL 时才会匹配。
正则表达式:https?:\/\/[^\s]*|<\/?\w+\b(?=\s|>)(?:='[^']*'|="[^"]*"|=[^'"][^\s>]*|[^>])*>|\ John|(John)
如果您采用最后一个正则表达式并将其传递给您的函数,那么只有John
标签和 url 之外的 s 将被替换为字符串。
Javascript 示例
工作示例:http ://repl.it/J4T
代码
var content = "<span name=\"John\" funnytag:John>John John John DoeJohn JohnDoe Mr.JohnDoe http://cool.guy.john/LikesKittens</span>";
var rePattern = /https?:\/\/[^\s]*|<\/?\w+\b(?=\s|>)(?:='[^']*'|="[^"]*"|=[^'"][^\s>]*|[^>])*>|\ John|(John)/gi;
content.replace(rePattern, function(match, capture) {
return capture ? "<img src=\"images/user.png\">" : match;
});
输出
<span name="John" funnytag:John><img src="images/user.png"> <img src="images/user.png"> John Doe<img src="images/user.png"> <img src="images/user.png">Doe Mr.<img src="images/user.png">Doe http://cool.guy.john/LikesKittens</span>