如果是本地的,请替换href链接扩展名

时间:2014-10-07 11:00:35

标签: javascript regex replace

我想将.htmlJavaScript扩展名替换为网页内不包含http://https://等协议的链接,以确保它们是本地链接。

我尝试过这样的事情,但无法正常工作:

字符串

<a href="local/path/to/url.html"> Replace me </a>
<a href="http://external.com/to/url.html"> DON'T replace me </a>
<a href="https://external.com/to/url.html"> DON'T replace me </a>

正则表达式

/href="^(http:|https:)(.*?).html"/gm

我不清楚如何在正则表达式中否定协议,如果我放置它们没有匹配。

3 个答案:

答案 0 :(得分:1)

以下正则表达式将捕获本地URL路径。

href="((?:(?!https?:\/\/).)+?)\.html"

DEMO

答案 1 :(得分:1)

几乎在那里,你只是错过了负面的前瞻:

href="(?!(?:http:|https:))(.*?).html"

演示:http://regex101.com/r/hA4fP1/1

答案 2 :(得分:0)

(href="(?!http)[^>]*\/.*?)\.html

使用$1Javascript试试this.replace。请参阅演示。

http://regex101.com/r/hQ1rP0/39