在JavaScript中用空格替换所有的<br>标签

12

遇到了非常简单的问题,如何正确地将字符串中的所有<br>< br>替换为空格?

这是我正在尝试使用的方法,但我收到的仍然是相同的字符串:

var finalStr = replaceAll(replaceAll(scope.ItemsList[i].itemDescr.substring(0, 27), "<", " "), "br>", " ");
function replaceAll(str, find, replace) {
    return str.replace(new RegExp(find, 'g'), replace);
}

你的代码已经替换了<br>... - Oriol
1个回答

32
您可以使用以下方法实现这一点:
str = str.replace(/<br\s*\/?>/gi,' ');

这将匹配:

  • <br 匹配字符 <br (不区分大小写)
  • \s* 匹配任何空格字符 [\r\n\t\f ]
  • 量词:* 重复零次或更多次,尽可能多次地匹配,按需返回 [贪婪模式]
  • \/? 匹配字符 / (斜杠)
  • 量词:? 重复零次或一次,尽可能多次地匹配,按需返回 [贪婪模式]
  • > 匹配字符 > (大于号)
  • g 修饰符:全局匹配,匹配所有结果(不在第一次匹配时停止)
  • i 修饰符:忽略大小写,匹配时不区分大小写的 [a-zA-Z]

下面是代码片段

let str = "This<br />sentence<br>output<BR/>will<Br/>have<BR>0 br";
str = str.replace(/<br\s*\/?>/gi, ' ');
console.log(str)


3
@user1935987,你错了,g修饰符是全局匹配。 - Marcos Pérez Gude
2
我更喜欢 str.replace(/<br \/>/g,'&nbsp;') - Marcos Pérez Gude

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接