jQuery搜索文本页面并更改它,但如果它已经存在则不要

Posted

技术标签:

【中文标题】jQuery搜索文本页面并更改它,但如果它已经存在则不要【英文标题】:jQuery search page for text and change it, but don't if it's already there 【发布时间】:2013-08-08 01:07:36 【问题描述】:

好的,一个有点令人困惑的问题 - 道歉。但我的网站 www.kateguestdesigns.com 和 www.kateguestdesigns.com/home 上有以下链接

使用 jQuery 我想将 www.kateguestdesigns.com 的所有实例更改为 www.kateguestdesigns.com/home。我目前正在使用此代码:

 $('body').html( $('body').html().replace(/kateguestdesigns.com/gi,'kateguestdesigns.com/home') );

搜索“kateguestdesigns.com”并将其更改为“kateguestdesigns.com/home”。我遇到的问题是它还将 kateguestdesigns.com/home 更改为 kateguestdesigns.com/home/home。

我有没有办法通过仅将更改应用到 kateguestdesigns.com 来解决这个问题?

【问题讨论】:

【参考方案1】:

您需要使用字符串锚的结尾。试试这个:

$('body').html( $('body').html().replace(/kateguestdesigns.com$/gi,'kateguestdesigns.com/home') );

$ 告诉替换匹配紧跟在.com 之后结束的字符串。请注意,这将不匹配 /kateguestdesigns.com/ 以说明尾部斜杠,只需转义并将其添加到 $ 之前:

$('body').html().replace(/kateguestdesigns.com\/$/gi,'kateguestdesigns.com/home') );

有关正则表达式特殊字符的参考,请参阅this page。

【讨论】:

【参考方案2】:

你可以这样做:

$('body').html($('body').html().replace(/kateguestdesigns.com$/gi,'kateguestdesigns.com/home'));

在正则表达式中添加了$ 以指示字符串的结尾。

【讨论】:

以上是关于jQuery搜索文本页面并更改它,但如果它已经存在则不要的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 jQuery DatePicker 控件的弹出位置

jquery更改事件序列

NuxtJs 从 jquery 更改的输入中获取值

在页面加载时触发/绑定文本框的 jquery 事件

清除 JQuery 中的文本字段值

jQuery 中 .prepend 方法的问题