我有这样的HTML字符串:
<div>My cat</div><div>My dog</div><div>12345</div>
我想使用Regex替换全局字符串(将</div><div>
更改为<br/>
,然后删除所有HTML,仅保留<br/>
:
My cat<br/>My dog<br/>12345
我尝试了以下代码:
var formatHTMLQuill = function (stringHTML) {
let t = stringHTML.replace('</div><div>', '<br/>');
let n = t.replace(/<(?!br\s*\/?)[^>]+>/g, '')
return n
}
但这不起作用,结果为My cat<br/>My dog</div><div>12345
答案 0 :(得分:1)
您可以先删除<div>
并将</div>
替换为<br/>
var formatHTMLQuill = function (stringHTML) {
let t = stringHTML.replace(/\<div>/g, '');
let n = t.replace(/\<\/div>/g, '<br/>')
return n
}
console.log(formatHTMLQuill("<div>test</div> <div>test1</div>"))
答案 1 :(得分:1)
您可以将RegEx与全局标记g
一起使用。 g
修饰符用于执行全局匹配(查找所有匹配,而不是在第一个匹配之后停止)。
var html = `<div>My cat</div><div>My dog</div><div>12345</div>`
var formatHTMLQuill = function (stringHTML) {
let t = stringHTML.replace(/<div>/ig,'') //remove the start div
.replace(/<\/div>/ig, '<br/>') //replace the closing </div>
.replace(/(<br\/>\s*)+$/,''); //remove the last <br/>
return t;
}
console.log(formatHTMLQuill(html));
答案 2 :(得分:1)
请验证以下代码:
var formatHTMLQuill = function (stringHTML) {
let t = stringHTML.replace(/(<\/div><div>)/g, '<br/>');
let n = t.replace(/(<\/div>|<div>)/g, '');
return (n);
}
console.log(formatHTMLQuill('<div>My cat</div><div>My dog</div><div>12345</div>'));