正则匹配标签内的空格问题

正则匹配标签内的空格问题

我尝试用/(<.*?>)\s(.*?)(<\/.*?>)/g 匹配

// 正则表达式

let rex = `/(<.*?>)\s(.*?)(<\/.*?>)/g`;

// 原字符串

let str = `<p class="ss" ><br> tab空格 </p> <p> 普通空格</p><p>没有空格</p>`;

// 匹配

let res = str.replace(rex,`$1&nbsp;$2$3`)

// 控制台打印

console.log(res)

// 得到的结果是 `<p class="ss" ><br>&nbsp; tab空格 </p> <p>&nbsp; 普通空格</p><p>没有空格</p>`

得到的结果是只匹配标签内的一个空格, 请问怎么实现标签内的空格都替换成   呢?
在线匹配测试地址

回答

var result = '<p class="ss" ><br>         tab空格 </p> <p>  普通空格</p><p>没有空格</p>'

.replace(/(\s*<[^>]+>)([^<>]*)(<\/[^>]+>\s*)/g, function(str, $1, $2, $3) {

return [$1.trim(), $2.trim(), $3.trim()].join('')

})

// "<p class="ss" ><br>tab空格</p><p>普通空格</p><p>没有空格</p>"

console.log(result)

以上是 正则匹配标签内的空格问题 的全部内容, 来源链接: utcz.com/a/66051.html

回到顶部