正则表达式,用标记将空格括起来并替换它

Regular Expression to surround whitespace with tags and replace it

本文关键字:起来 替换 空格 正则表达式      更新时间:2023-09-26

我有一些javascript生成一个html字符串,然后将其传递给我不控制的其他javascript,在那里所有空白都被折叠(不要问(。

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

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

"a b c"->`"a…b.c">

我知道我可以通过简单地用<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>/

(我的正则表达式fu只是棕色皮带,所以你可能需要调整一些转义或类似的(。