切断字符串&#34; <p> </p>&#34;

时间:2017-03-21 11:05:09

标签: javascript jquery html css wordpress

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

var str = $("p").text();
str = str.replace("|", " ");
$(".post-meta").text(str);

这部分html现在是这样的:

<p class="post-meta">
  "|"
  "|  0 Comments"
</p>

当我更换|对于一个空间,它会像这样:

<p class="post-meta"> 
  "0 Comments    |    |  0 Comments         |  0 Comments    |    |  0 Comments"
</p>

我不知道你是否能理解我要问的内容但是我想替换上面显示的第一个p标签内的文字,并且只获得0评论部分,请记住我可以& #39; t只需替换&#34; 0评论&#34;因为评论的数量是自动生成的,它取决于帖子。

谢谢!

1 个答案:

答案 0 :(得分:4)

您可以将.replace与正则表达式一起使用:

str = str.replace(/\|/g," ");

您通常会使用/text/g其中:

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

在你的情况下|也意味着正则表达式中的内容,因此需要进行转义:\|

var str = $("p.post-meta").text();
str = str.replace(/\|/g," ");
$("p.post-meta").text(str);
<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, ..仅替换第一次出现的问题,请查看此处:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace

  

substr(模式)

     

要由newSubStr替换的字符串。它被视为逐字字符串,不会被解释为正则表达式。 只会替换第一个匹配项。

(我的重点)。但它没有解释为什么。使用正则表达式可以添加/g来表示“所有出现次数”。