Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
2.9k views
in Technique[技术] by (71.8m points)

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

image

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

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
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)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...