我目前正在尝试在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或以下代码段:
$(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;
有人可以告诉我应该怎么做吗?
答案 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
表示全局。它会导致所有匹配被替换。
$(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;
答案 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 />'));
});