H5W3
当前位置:H5W3 > 问答 > 正文

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

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

我尝试用/(<.*?>)\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)

未经允许不得转载:H5W3 » 正则匹配标签内的空格问题

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址