如何解决重复innerHTML.replace
| 我正在使用下面的代码来使链接在wordpress标题中可链接。例如,它将“ 0”成功转换为google.com。但是,当我在标题中放入多个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>
解决方法
默认情况下,RegExp只找到一个匹配项。
this.innerHTML = this.innerHTML.replace(new RegExp(\" http://([^ ]*) \",\"g\"),\" <a href=\\\"http://$1\\\">$1</a> \");
添加\“ g \”标志执行全局匹配。
,尝试以下方法:
this.innerHTML = this.innerHTML.replace.replace(/http:\\/\\/([^ ]*)/g,\" <a href=\\\"http://$1\\\">$1</a> \");
/ g表示此正则表达式是全局的。
,对您的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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。