0

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

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

我正在尝试开发一个正则表达式,它可以让我进行这样的转换

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

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

任何建议,将不胜感激。

4

3 回答 3

2

我能够这样做:

var str=name.replace(/\s+/g,'<span class="whitespace">$&</span>');
str=str.replace(/\s/g,".");
return str;
于 2013-02-22T18:16:15.707 回答
0

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

str.replace(/\s/g,'&nbsp;')
于 2013-02-22T18:00:03.177 回答
0

这个怎么样:三个步骤。

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

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

  2. 匹配所有前面没有句点的单个空格。

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

  3. 匹配跨度后跟点。

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

(我的 regex-fu 只是棕色腰带,所以你可能需要调整一些逃逸等)。

于 2013-02-22T18:11:35.357 回答