【问题标题】:jquery regex replace hrefjquery 正则表达式替换href
【发布时间】:2012-07-13 18:26:27
【问题描述】:

我有这个结构:

<ul>
    <li><a href="mydomain/site/location/paris/">Paris</a></li>
        <ul>
            <li><a href="mydomain/site/location/london/">London</a></li>
        </ul>
    <li><a href="mydomain/site/location/amsterdam-and-paris/">Amsterdam and Paris</a></li>
</ul>

我需要用这个替换每个锚的href:

<a href="mydomain/site/event?location=london">London</a>

你能帮帮我吗

【问题讨论】:

    标签: jquery regex string dom-manipulation html


    【解决方案1】:

    .attr() has a form 时可以使用回调函数来转换当前设置的属性。

    使用它并结合正确的正则表达式,这样的事情会起作用:

    $("a[href^='mydomain/site']").attr('href', function (i, attr) {
        return attr.replace(
            /^(mydomain\/site\/)(location)\/([^/]*)\//
            , '$1event?$2=$3'
        );
    })​
    

    【讨论】:

    • tnx 的指南,我很感激