我正在使用下面的代码在WordPress标题中建立可链接的链接。例如,它成功将http://google.com
变为google.com。但是当我在标题中放入多个url时,它只会更改第一个url。有没有办法让它在所有链接上重复操作?
<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>
答案 0 :(得分: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
答案 1 :(得分:2)
RegExp默认只找到一个匹配。
this.innerHTML = this.innerHTML.replace(new RegExp(" http://([^ ]*) ", "g"), " <a href=\"http://$1\">$1</a> ");
添加“g”标志执行全局匹配。
答案 2 :(得分:2)
请改为尝试:
this.innerHTML = this.innerHTML.replace.replace(/http:\/\/([^ ]*)/g, " <a href=\"http://$1\">$1</a> ");
/ g表示此正则表达式是全局的。