Javascript 用于查找所有文本URL但不在图像src中的正则表达式

Javascript 用于查找所有文本URL但不在图像src中的正则表达式,javascript,regex,regex-negation,Javascript,Regex,Regex Negation,我正在将页面上的所有文本URL替换为可点击。 执行此操作时,它还会替换“src”属性中的链接 图像的数量(不需要) 我的正则表达式是这个 [-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)? 我试着用否定搜索 (?!src\=\")[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.

我正在将页面上的所有文本URL替换为可点击。
执行此操作时,它还会替换“src”属性中的链接 图像的数量(不需要)

我的正则表达式是这个

[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?
我试着用否定搜索

(?!src\=\")[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?
但一点也不匹配


我应该如何在正则表达式前面加上前缀?

像这样的东西怎么样

(?:(href="))([-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)(?:([^>]*>[^<]*</a>))

(?:(href=)([-a-zA-Z0-9@:%\+.~\.?&/=]{2256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%\+.~\\.&/=]))(?:([^>]*>[^我不确定这个问题,但我的解释是,您想替换元素中href属性的值

此正则表达式将查找具有href属性的元素。该值将位于第一个捕获组中

(?:<a[^>]*?href\s*=\s*")([^"]*)(?:")

(?:

javascript是您唯一的选择..您不能在其他服务器端执行此操作吗languages@Anirudh我是按照你的建议做的-服务器端。问题回答/结束了吗?@winner\u joiner基本上我是按照Anirudh的建议做的。如果你有JS的解决方案,你可以把它作为答案发布。
myHtml.replace(/(<a[^>]*?href\s*=\s*")([^"]*)(")/gi, function(match, $1, $2, $3) {
    return $1 + "javascript.void(functionName('" + $2 + "'))" + $3;
});
<a target="new" title="test" href="http://url.com">
<a target="new" title="test" href="javascript.void(functionName('http://url.com'))">
myHtml.replace(/(<a[^>]*?)(href\s*=\s*"([^"]*)")/gi, function(match, $1, $2, $3) {
    return $1 + "onclick=\"functionName('" + $3 + "')\"";
});
<a target="new" onclick="functionName('http://url.com')">