重复innerHTML.replace

发布于 2024-11-09 20:43:56 字数 491 浏览 0 评论 0原文

我使用下面的代码使 WordPress 标题中的链接可链接。例如,它成功地将 http://google.com 转换为 google.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>

I'm using the code below to make links linkable in WordPress captions. For example it successfully turns http://google.com into google.com. But when I put multiple url's in a caption it only changes the first one. Is there a way to make it repeat the action on all the links?

<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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

把人绕傻吧 2024-11-16 20:43:56

RegExp 默认情况下仅找到一个匹配项。

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

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

RegExp by default only finds one match.

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

Adding the "g" flag performs a global match.

゛时过境迁 2024-11-16 20:43:56

试试这个:

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

/g 意味着这个正则表达式是全局的。

Try this instead:

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

the /g means that this regular expression is global.

伪装你 2024-11-16 20:43:56

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

A subtle change to your RegExp call should do it:

    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> "));
        });
    });

The key is the 'g' modifier argument -- g stands for global; in other words: replace all.

Here's the relevant reference material: http://www.w3schools.com/jsref/jsref_regexp_g.asp

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文