用于替换和禁用href链接的正则表达式模式

时间:2015-05-20 03:16:34

标签: javascript jquery regex

我需要在我的html表中禁用a个链接标记(其href属性值以log.html开头)。我正在尝试使用字符串替换。

代码行看起来大致类似于str.replace(/log.html...../g,''),其中必须有一个正则表达式代替点。

所有模式都是这样,

<a class="log" href="log.html#s1-s1-s1"></a>
<a class="log" href="log.html#s1-s2-s100"></a>
<a class="log" href="log.html#s10-s5-s1"></a>

必须是,

<a class="log" href="#"></a>

4 个答案:

答案 0 :(得分:2)

您可以使用以下内容进行匹配:

/log.html#[^"]*/g

并替换为#

代码:

str.replace(/log.html#[^"]*/g,'#')

请参阅DEMO

答案 1 :(得分:0)

您要找的是string.match()。此函数返回匹配的数组和任何捕获的组。您可以使用以下内容测试所有链接:

$('a').each(function() {
    href = $(this).attr("href");
    if(href.match(/^log\.html/)) {
        $(this).attr("href", "#");
    }
});

Fiddle

答案 2 :(得分:0)

这个正则表达式模式似乎有效,因为url可以作为字符串访问。这可以通过jQuery轻松完成。

 str.replace(/log\.html.*/g,'#')

答案 3 :(得分:0)

由于href和“..”在链接中始终可用,我会使用简单的

/href=".+"/g

DEMO