gpt4 book ai didi

javascript - 未包含在标签中的 url 的正则表达式

转载 作者:行者123 更新时间:2023-11-30 18:09:35 26 4
gpt4 key购买 nike

我有一个 contenteditable div,当用户按下空格键或粘贴到其中时,它的内容将被搜索一个 url(通过正则表达式),该 url 被替换为:

<a href="' + url + '" title="' + url + '" target="_blank" class="label label-info label-url" contenteditable="false">url: \'' + url + '\'</a>&nbsp;

而且有效。

问题是,当您继续写入或粘贴时,<a> 中的三个 url标记将再次被评估并被替换,造成严重破坏,所以我需要一种方法来避免它们被评估,或者通过更改正则表达式(它应该忽略前面有 href="title="url: ' 的 url)或更改js.

jsfiddle:http://jsfiddle.net/YUekd/

最佳答案

第一个问题是,在 JS 正则表达式引擎中没有负面回顾。但是您可以使用带有 replace 方法的回调函数来做到这一点:

html = html.replace(
/(href="|title="|url: )?(yoururlregex)/ig,
function($0, $1, $2) {
return $1
? $0
: '<a href="' + $2 + '" title="' + $2 + '">url: ' + $2 + '</a>';
}
);

我用常量字符串替换了您的 URL 正则表达式以使其更清晰,您可以将您的正则表达式替换为大括号。

编辑:放置match的地方:

    function($0, $1, $2) {
if ($1) {
return $0;
} else {
match = true;
return '<a href="' + $2 + '" title="' + $2 + '">url: ' + $2 + '</a>';
}
}

关于javascript - 未包含在标签中的 url 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14942118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com