1

我正在使用下面的代码使链接在 WordPress 标题中可链接。例如,它成功地变成http://google.comgoogle.com。但是当我将多个网址放在标题中时,它只会更改第一个。有没有办法让它在所有链接上重复操作?

<script type="text/javascript">
    jQuery().ready(function() {
    jQuery("p.wp-caption-text").each(function(n) {
        this.innerHTML = this.innerHTML.replace(new RegExp(" http://([^ ]*) "), " <a href=\"http://$1\">$1</a> ");
    });
    });
</script>
4

3 回答 3

2

对您的通话进行细微的更改RegExp应该可以做到:

    jQuery().ready(function() {
        jQuery("p.wp-caption-text").each(function(n) {
            $(this).html($(this).html().replace(new RegExp(" http://([^ ]*) ", 'g'), " <a href=\"http://$1\">$1</a> "));
        });
    });

关键是'g'修饰符参数——g代表全局;换句话说:全部替换。

以下是相关参考资料:http ://www.w3schools.com/jsref/jsref_regexp_g.asp

于 2011-05-25T18:43:02.107 回答
2

RegExp 默认只找到一个匹配项。

this.innerHTML = this.innerHTML.replace(new RegExp(" http://([^ ]*) ", "g"), " <a href=\"http://$1\">$1</a> ");

添加“g”标志执行全局匹配。

于 2011-05-25T18:43:12.033 回答
2

试试这个:

this.innerHTML = this.innerHTML.replace.replace(/http:\/\/([^ ]*)/g, " <a href=\"http://$1\">$1</a> ");

/g 表示这个正则表达式是全局的。

于 2011-05-25T18:49:43.353 回答