用于不替换图像url的javascript正则表达式修复程序
我正在使用正则表达式将字符串中的所有用于不替换图像url的javascript正则表达式修复程序,javascript,html,regex,string,replace,Javascript,Html,Regex,String,Replace,我正在使用正则表达式将字符串中的所有url替换为 因为我用的是 if(!String.linkify) { String.prototype.linkify = function() { // http://, https://, ftp:// var urlPattern = /\b(?:https?|ftp):\/\/[a-z0-9-+&@#\/%?=~_|!:,.;]*[a-z0-9-+&@#\/%=~_|]/gim;
url
替换为
因为我用的是
if(!String.linkify) {
String.prototype.linkify = function() {
// http://, https://, ftp://
var urlPattern = /\b(?:https?|ftp):\/\/[a-z0-9-+&@#\/%?=~_|!:,.;]*[a-z0-9-+&@#\/%=~_|]/gim;
// www. sans http:// or https://
var pseudoUrlPattern = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
// Email addresses
var emailAddressPattern = /[\w.]+@[a-zA-Z_-]+?(?:\.[a-zA-Z]{2,6})+/gim;
return this
.replace(urlPattern, '<a href="$&">$&</a>')
.replace(pseudoUrlPattern, '$1<a href="http://$2">$2</a>')
.replace(emailAddressPattern, '<a href="mailto:$&">$&</a>');
};
}
从这里开始
除非我的字符串中有img标记,否则它工作正常
至
我应该对我的正则表达式做哪些更改以不替换作为某个标记属性一部分的URL
任何帮助都会很好。使用它,众所周知,链接是可靠的
请参见有关其他标记/属性内链接的说明部分:
将正确处理HTML输入。实用工具不会更改锚定(
)标记(或任何其他标记/属性)内的href
属性,也不会意外地用新的锚定标记包装锚定标记的内部文本(这将导致双嵌套锚定标记)
下面是一个使用它的示例:
var linkedText = Autolinker.link(input_html, { className: "myLink" } );
规则1:不要使用正则表达式解析HTML。规则2:如果你仍然想用正则表达式解析HTML,请参见规则1。你是否尝试过你链接到的问题的第一个答案中提到的库?实际上不是,你在说什么?。用法很简单:var linkedText=Autolinker.link(input_html,{className:“myLink”})代码>@Stribizev我没有使用那个库。我会努力的。您确定,它不会替换img标记中的url吗?好的,尝试一下,只需几分钟。是的,它按预期工作。即使我提到那个问题,我也找不到。非常感谢。
var linkedText = Autolinker.link(input_html, { className: "myLink" } );