正则表达式如何把标签内容中的空格替换成自己想要的内容

下面的代码是一段字符串, 如何使用正则表达式去掉标签内容中的空格替换成自己想要的内容

原始内容:

<p>内容         内容</p> <p class="ql-align-right">内容    内容</p>

想要的结果:

<p>内容&nbsp;&nbsp;内容</p><p class="ql-align-right">&nbsp;&nbsp;</p>
阅读 2.9k
1 个回答

只替换标签内容里的空格,不处理标签外的空格。对于嵌套标签,只处理最内层标签的内容

str.replace(/(?<=<(?<tag>\w+)(?: [^><]+)*>[^><]*)( +)(?=[^><]*<\/\k<tag>>)/g, a=>'&nbsp;'.repeat(a.length))

只保留开始标签内的空格

str.replace(/(?<=(?:^|>)[^><]*)( +)(?=[^><]*(?:<|$))/g, a=>'&nbsp;'.repeat(a.length))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题