繁体   English   中英

正则表达式用标签包围空白并替换它

[英]Regular Expression to surround whitespace with tags and replace it

我有一些javascript生成一个html字符串,然后将其传递给一些我无法控制的javascript,其中所有空格都被折叠(不要问)。

我希望通过将空白更改为字符(我一直使用句点)并使用跨度将文本颜色设置为与背景相同来维持我的空白。 此文本无法突出显示,因此这是一个相当准确的空白替代品

我正在尝试开发一个正则表达式,允许我进行这样的转换

"abc" - >`“a ... bc”

我知道我可以通过简单地用<span>.</span>替换每个空格来处理这个简单的情况<span>.</span>就像这个str.replace(/s/g,"<span class="whitespace">.</span>)但我真的更喜欢删除多余的标签并匹配每组空白而不是每个空间都有一个单独的span标签。

任何建议,将不胜感激。

我能够这样做:

var str=name.replace(/\s+/g,'<span class="whitespace">$&</span>');
str=str.replace(/\s/g,".");
return str;

您是否尝试过将所有空格转换为&nbsp;

str.replace(/\s/g,'&nbsp;')

怎么样:三个步骤。

  1. 匹配3个或更多的所有空白区域。 替换“内部”空格。

    /(?<=\\s)\\s+(?=\\s)/./

  2. 匹配所有不带句点的单个空格。

    /(?<!\\.)\\s/<span>./

  3. 匹配跨度后跟点。

    /(<span>\\.+)/$1<\\/span>/

(我的正则表达式只是棕色腰带所以你可能需要调整一些逃脱等)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM