首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在"<p></p>“内切割字符串

在"<p></p>“内切割字符串
EN

Stack Overflow用户
提问于 2017-03-21 11:05:09
回答 1查看 108关注 0票数 0

我希望将p的文本转换为字符串,然后编辑文本,为此我将使用以下代码:

代码语言:javascript
复制
var str = $("p").text();
str = str.replace("|", " ");
$(".post-meta").text(str);

现在html的这一部分如下所示:

代码语言:javascript
复制
<p class="post-meta">
  "|"
  "|  0 Comments"
</p>

当我替换一个空间时,结果会是这样的:

代码语言:javascript
复制
<p class="post-meta"> 
  "0 Comments    |    |  0 Comments         |  0 Comments    |    |  0 Comments"
</p>

我不知道您是否能理解我所要求的内容,但是我想替换上面显示的第一个p标记中的文本,并且只得到0注释部分,请记住,我不能只将字符串替换为"0注释“,因为注释的数量是自动生成的,它将取决于post。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-21 11:10:09

您可以在正则表达式中使用.replace

代码语言:javascript
复制
str = str.replace(/\|/g," ");

您通常会在以下地方使用/text/g

  • /表示正则表达式
  • text是要替换的文本。
  • g指的是所有情况(全局)

在您的例子中,|也意味着正则表达式中的某些内容,因此需要转义:\|

代码语言:javascript
复制
var str = $("p.post-meta").text();
str = str.replace(/\|/g," ");
$("p.post-meta").text(str);
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="post-meta">
"|"
"|  0 Comments"
</p>

我保留了""的原件,但也许你打算删除它们,或者它们是为了说明问题的目的而存在的。

更新

要回答为什么str.replace(string, ..只替换第一次出现的问题,请看这里:Objects/String/replace

substr (模式) 将被newSubStr替换的字符串。它被视为逐字字符串,不被解释为正则表达式。只会替换第一次出现的.

(我的重点)。但这并不能解释原因。使用regex允许您添加/g来表示“所有出现的情况”。

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

https://stackoverflow.com/questions/42925282

复制
相关文章

相似问题

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