首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用正则表达式替换字符串

无法使用正则表达式替换字符串
EN

Stack Overflow用户
提问于 2014-09-05 13:36:09
回答 4查看 134关注 0票数 0

我在这里玩小提琴:http://jsfiddle.net/dm9eebz9/

HTML

代码语言:javascript
复制
<div id="wrapper">
    <p class="body">Line 1
        <br>
        <br>Line 3</p>
    <p class="body">Line 1
        <br>Line 2
        <br>
        <br>
        <br>
        <br>Line 6</p>
    <p class="body">Line 1
        <br>Line 2</p>
</div>

Javascript/jQuery

代码语言:javascript
复制
$('#wrapper p.body').each(function () {
    var temp = $(this).innerHTML;
    this.innerHTML = temp.replace(/(<br>)+/gim, "<br>");
});

我的目标是在两个以上的<br>出现时设法摆脱它们。然而,它似乎不认识临时的。这是操纵行为,还是我犯了一个明显的错误?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-09-05 13:49:57

jsfiddled:http://jsfiddle.net/pe6w7z1e/1/

其思想是:将有一个中断和一个/多个(一个/多个空间行走+中断) >>替换为仅一个中断

以下是修改后的代码:

代码语言:javascript
复制
$('p.body').each(function () {
    var elem = $(this)
    var temp = elem.html();
    elem.html(temp.replace(/<br>(\s+<br>)+/img, "<br>"));

});

如果它回答你的问题,请标记为答案。

我认为最好使用jquery所有的情况。Jquery和原始javascript的混合不是一个好的概念。

票数 1
EN

Stack Overflow用户

发布于 2014-09-05 13:52:32

使用.html()而不是innerHTML

regex模式/(<br>\s*)+/考虑了与\s*匹配0或多个空白字符的空白。

代码语言:javascript
复制
$('p.body').each(function () {
    var temp = $(this).html();
    $(this).html(temp.replace(/(<br>\s*)+/gim, "<br>"));
});

此外,如注释所示,使用浏览器控制台用于调试,并始终用于RTFM

小提琴:http://jsfiddle.net/dm9eebz9/4/

票数 1
EN

Stack Overflow用户

发布于 2014-09-05 14:10:00

我真的不认为正则表达式是正确的工具。可以使用.contents.filter的组合来删除重复的<br />标记:

代码语言:javascript
复制
var prev = null;
var $nodes = $('.body')
    .contents()
    .filter(function () {
        return this.nodeType !== 3 || $.trim(this.data) !== "";
    });

for (var i = 1; i < $nodes.length; i++) {
    if ($nodes.eq(i).is('br') && $nodes.eq(i-1).is('br')) {
        $nodes.eq(i).remove();
    }
}

这里的复杂性是<br />标记之间的文本节点,因此是两个步骤。

示例: http://jsfiddle.net/dm9eebz9/9/

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

https://stackoverflow.com/questions/25687191

复制
相关文章

相似问题

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