7

我有以下替换功能

myString.replace(/\s\w(?=\s)/,"$1\xA0");

目的是采用单字母词(例如介词)并在它们之后添加一个不间断的空格,而不是标准空格。

但是上面的 $1 变量对我不起作用。它插入文本“$1”而不是原始匹配字符串的一部分 + nbsp。

观察到的行为的原因是什么?还有其他方法可以实现吗?

4

2 回答 2

9

$1 不起作用,因为您没有任何捕获子组。

正则表达式应该类似于/\b(\w+)\s+/.

于 2010-02-19T09:37:44.177 回答
5

似乎你想做这样的事情:

myString.replace(/\s(\w)\s/,"$1\xA0");

但是这样你会在你的单字母词之前失去空格。因此,您可能还希望将第一个包含\s在捕获组中。

于 2010-02-19T09:38:22.830 回答