Javascript 无法使用正则表达式替换字符串
我在这里玩JSFIDLE: HTMLJavascript 无法使用正则表达式替换字符串,javascript,jquery,replace,Javascript,Jquery,Replace,我在这里玩JSFIDLE: HTML 第1行 第3行 第1行 第2行 第6行 第1行 第2行 Javascript/jQuery $('#wrapper p.body').each(function () { var temp = $(this).innerHTML; this.innerHTML = temp.replace(/(<br>)+/gim, "<br>"); }); $('#wrapper p.body')。每个(函数(){ v
第1行
第3行
第1行
第2行
第6行
第1行
第2行
Javascript/jQuery
$('#wrapper p.body').each(function () {
var temp = $(this).innerHTML;
this.innerHTML = temp.replace(/(<br>)+/gim, "<br>");
});
$('#wrapper p.body')。每个(函数(){
var temp=$(this).innerHTML;
this.innerHTML=temp.replace(/(
)+/gim,“
”);
});
我的目标是尝试在出现2个以上的
时将其清除。然而,它似乎无法识别temp。这是JSFIDLE行为,还是我犯了一个明显的错误?您需要为innerHTML
属性使用正确的对象。这是一个DOM对象属性,而不是jQuery属性。您可以在DOM元素上使用innerHTML
DOM属性:
$('p.body').each(function () {
var temp = this.innerHTML;
this.innerHTML = temp.replace(/(<br>)+/gim, "<br>");
});
$('p.body')。每个(函数(){
var temp=this.innerHTML;
this.innerHTML=temp.replace(/(
)+/gim,“
”);
});
JSFiddle:
或者对jQuery对象使用html()方法:
$('p.body').each(function () {
var temp = $(this).html();
this.html(temp.replace(/(<br>)+/gim, "<br>"));
});
$('p.body')。每个(函数(){
var temp=$(this.html();
html(临时替换(/(
)+/gim,“
”);
});
请注意,“正确”的换行符是
,而不是
,但我想您不能更改该换行符,因为您需要为innerHTML
属性使用正确的对象。这是一个DOM对象属性,而不是jQuery属性。您可以在DOM元素上使用innerHTML
DOM属性:
$('p.body').each(function () {
var temp = this.innerHTML;
this.innerHTML = temp.replace(/(<br>)+/gim, "<br>");
});
$('p.body')。每个(函数(){
var temp=this.innerHTML;
this.innerHTML=temp.replace(/(
)+/gim,“
”);
});
JSFiddle:
或者对jQuery对象使用html()方法:
$('p.body').each(function () {
var temp = $(this).html();
this.html(temp.replace(/(<br>)+/gim, "<br>"));
});
$('p.body')。每个(函数(){
var temp=$(this.html();
html(临时替换(/(
)+/gim,“
”);
});
请注意,“正确”的换行符是
,而不是
,但我想您不能更改该换行符,因为您需要为innerHTML
属性使用正确的对象。这是一个DOM对象属性,而不是jQuery属性。您可以在DOM元素上使用innerHTML
DOM属性:
$('p.body').each(function () {
var temp = this.innerHTML;
this.innerHTML = temp.replace(/(<br>)+/gim, "<br>");
});
$('p.body')。每个(函数(){
var temp=this.innerHTML;
this.innerHTML=temp.replace(/(
)+/gim,“
”);
});
JSFiddle:
或者对jQuery对象使用html()方法:
$('p.body').each(function () {
var temp = $(this).html();
this.html(temp.replace(/(<br>)+/gim, "<br>"));
});
$('p.body')。每个(函数(){
var temp=$(this.html();
html(临时替换(/(
)+/gim,“
”);
});
请注意,“正确”的换行符是
,而不是
,但我想您不能更改该换行符,因为您需要为innerHTML
属性使用正确的对象。这是一个DOM对象属性,而不是jQuery属性。您可以在DOM元素上使用innerHTML
DOM属性:
$('p.body').each(function () {
var temp = this.innerHTML;
this.innerHTML = temp.replace(/(<br>)+/gim, "<br>");
});
$('p.body')。每个(函数(){
var temp=this.innerHTML;
this.innerHTML=temp.replace(/(
)+/gim,“
”);
});
JSFiddle:
或者对jQuery对象使用html()方法:
$('p.body').each(function () {
var temp = $(this).html();
this.html(temp.replace(/(<br>)+/gim, "<br>"));
});
$('p.body')。每个(函数(){
var temp=$(this.html();
html(临时替换(/(
)+/gim,“
”);
});
请注意,“正确”的换行符是
,而不是
,但我想您无法更改该换行符:
想法是:将有一个中断和一个/多个(一个/多个空格换行+中断)>>替换为一个中断
以下是修改后的代码:
$('p.body').each(function () {
var elem = $(this)
var temp = elem.html();
elem.html(temp.replace(/<br>(\s+<br>)+/img, "<br>"));
});
$('p.body')。每个(函数(){
var elem=$(此)
var temp=elem.html();
元素html(临时替换(/
(\s+
)+//img,“
”);
});
如果回答了您的问题,请将其标记为答案
我认为最好在所有情况下都使用jquery。Jquery和原始javascript的混合不是一个好概念。JSFIDED:
想法是:将有一个中断和一个/多个(一个/多个空格换行+中断)>>替换为一个中断
以下是修改后的代码:
$('p.body').each(function () {
var elem = $(this)
var temp = elem.html();
elem.html(temp.replace(/<br>(\s+<br>)+/img, "<br>"));
});
$('p.body')。每个(函数(){
var elem=$(此)
var temp=elem.html();
元素html(临时替换(/
(\s+
)+//img,“
”);
});
如果回答了您的问题,请将其标记为答案
我认为最好在所有情况下都使用jquery。Jquery和原始javascript的混合不是一个好概念。JSFIDED:
想法是:将有一个中断和一个/多个(一个/多个空格换行+中断)>>替换为一个中断
以下是修改后的代码:
$('p.body').each(function () {
var elem = $(this)
var temp = elem.html();
elem.html(temp.replace(/<br>(\s+<br>)+/img, "<br>"));
});
$('p.body')。每个(函数(){
var elem=$(此)
var temp=elem.html();
元素html(临时替换(/
(\s+
)+//img,“
”);
});
如果回答了您的问题,请将其标记为答案
我认为最好在所有情况下都使用jquery。Jquery和原始javascript的混合不是一个好概念。JSFIDED:
想法是:将有一个中断和一个/多个(一个/多个空格换行+中断)>>替换为一个中断
以下是修改后的代码:
$('p.body').each(function () {
var elem = $(this)
var temp = elem.html();
elem.html(temp.replace(/<br>(\s+<br>)+/img, "<br>"));
});
$('p.body')。每个(函数(){
var elem=$(此)
var temp=elem.html();
元素html(临时替换(/
(\s+
)+//img,“
”);
});
如果回答了您的问题,请将其标记为答案
我认为最好在所有情况下都使用jquery。Jquery和原始javascript的混合不是一个好概念。使用.html()
而不是innerHTML
正则表达式模式/(
\s*)+/
将空格与匹配0个或多个空格字符的\s*
一起考虑
$('p.body').each(function () {
var temp = $(this).html();
$(this).html(temp.replace(/(<br>\s*)+/gim, "<br>"));
});
$('p.body')。每个(函数(){
var temp=$(this.html();
$(this.html(临时替换(/(
\s*)+/gim,“
”));
});
同样如注释所示,用于调试和始终
小提琴:使用.html()
而不是innerHTML
正则表达式模式/(
\s*)+/
考虑了空格,其中