jQuery替换多次出现的substring / text

时间:2016-03-23 14:30:36

标签: javascript jquery html replace replaceall

我目前正在尝试在jQuery中学习replace方法。

我有一个<div class="notes">,其中包含以下文字

  (1 1 1 0 0 1 1)(1 1 1 0 0 1 1)(1 1 1 0 0 1 1)(1 1 1 0 0 0 0)(1 1 1 0 0 1 1)

并希望用特定值替换文本。例如,每次看到)(时,我都希望它转到新行(<br/>)。我试图使用jQuery的替换方法来实现这一点。

 $(document).ready(function() {
    var text = $('.notes').html().replace(")(", "<br/>");
    $('.notes').html(text);
  });

我注意到这样做时,它只是替换了第一个实例。所以我尝试了replaceAll方法,虽然这对字符串没有影响。

Quick fiddle Demo或以下代码段:

&#13;
&#13;
$(document).ready(function() {
    var text = $('.notes').html().replace(")(", "<br/>");
    $('.notes').html(text);
    alert(text);
  });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="notes">
  (1 1 1 0 0 1 1)(1 1 1 0 0 1 1)(1 1 1 0 0 1 1)(1 1 1 0 0 0 0)(1 1 1 0 0 1 1)
</div>
&#13;
&#13;
&#13;

有人可以告诉我应该怎么做吗?

5 个答案:

答案 0 :(得分:4)

您需要使用全局运行的正则表达式,注意/g命令。

对于您的情况,您需要使用以下内容:

/\)\(/g

$(document).ready(function() {
    var text = $('.notes').html().replace(/\)\(/g, "<br/>");
    $('.notes').html(text);
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="notes">
  (1 1 1 0 0 1 1)(1 1 1 0 0 1 1)(1 1 1 0 0 1 1)(1 1 1 0 0 0 0)(1 1 1 0 0 1 1)
</div>

答案 1 :(得分:4)

.replace()是一个String方法,而不是一个jQuery方法,所以一个简单的RegExp应该这样做。

 var text = $('.notes').html().replace(/\)\(/g, "<br/>");

注意代表global的g命令,这意味着它适用于所有实例。

答案 2 :(得分:3)

你去吧 -

这里,/\(|\)/g是正则表达式(正则表达式)。标志g表示全局。它会导致所有匹配被替换。

&#13;
&#13;
$(document).ready(function() {
    var text = $('.notes').text().replace(/\(|\)/g, "<br/>");
    $('.notes').html(text);
    alert(text);
  });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="notes">
  (1 1 1 0 0 1 1)(1 1 1 0 0 1 1)(1 1 1 0 0 1 1)(1 1 1 0 0 0 0)(1 1 1 0 0 1 1)
</div>
&#13;
&#13;
&#13;

答案 3 :(得分:3)

没有正则表达式(拆分和加入)的答案:

$(function() {
    var notes = $('.notes');
    notes.html(notes.html().split(')(').join(')<br/>('));
});

答案 4 :(得分:0)

$(document).ready(function() {
  $('.notes').html($('.notes').html().replace(/\)\(/g, '<br />'));
});