我希望将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注释部分,请记住,我不能只将字符串替换为"0注释“,因为注释的数量是自动生成的,它将取决于post。
谢谢!
发布于 2017-03-21 11:10:09
您可以在正则表达式中使用.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, ..只替换第一次出现的问题,请看这里:Objects/String/replace
substr (模式) 将被newSubStr替换的字符串。它被视为逐字字符串,不被解释为正则表达式。只会替换第一次出现的.。
(我的重点)。但这并不能解释原因。使用regex允许您添加/g来表示“所有出现的情况”。
https://stackoverflow.com/questions/42925282
复制相似问题