首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Javascript中查找和替换,除非已经就位

在Javascript中查找和替换,除非已经就位
EN

Stack Overflow用户
提问于 2020-08-28 23:34:22
回答 3查看 83关注 0票数 1

我想以我对JS超级新手这一事实为前提。

我希望用JS做一个查找和替换。问题是,如果结果已经就位,我希望查找和替换不会更改任何内容(如果这有任何意义?)

我的示例是,我希望运行JS来添加一个单词"®“,但如果符号已经存在,则不添加它。

非常感谢你的帮助,哈里

代码语言:javascript
运行
复制
$("body").children().each(function () {
    $(this).html( $(this).html().replace(/Hello/g,"Hello®") );
});
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-08-28 23:40:46

首先检查"®“是否已可用或未使用$(this).html().indexOf("®") === -1,如果此条件返回true,则替换。

代码语言:javascript
运行
复制
$("body").children().each(function () {
    if($(this).html().indexOf("®") === -1) {
      $(this).html( $(this).html().replace(/Hello/g,"Hello®") );
    }
});
票数 1
EN

Stack Overflow用户

发布于 2020-08-29 00:04:53

下面是使用正则表达式/(^|\s)Hello(\s|$)/g的解决方案

代码语言:javascript
运行
复制
<!DOCTYPE html>
<html>

<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>

<body>
  <p>Hello</p>
  <p>Hello®</p>
</body>
<script>
  $("body").children().each(function() {
    $(this).html($(this).html().replace(/(^|\s)Hello(\s|$)/g, "Hello®"));
  });
</script>

</html>

票数 0
EN

Stack Overflow用户

发布于 2020-08-29 12:31:13

我建议您使用正则表达式,直到您发现了一种模式,可以在符号已经存在的地方消除“匹配”。此外,不要忘记检查用于此符号的各种实体,如&reg;

有一些很棒的正则表达式测试者。我推荐Debuggex

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63636858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档