我有以下替换功能
myString.replace(/\s\w(?=\s)/,"$1\xA0");
目的是采用单字母单词(例如介词)并在它们之后添加一个不间断的空格,而不是标准空间。
但是上面的$ 1变量对我不起作用。它插入文本“$ 1”而不是原始匹配字符串+ nbsp。
的一部分观察到的行为是什么原因?有没有其他方法可以实现它?
答案 0 :(得分:9)
$ 1不起作用,因为您没有任何捕获子组。
正则表达式应该类似于/\b(\w+)\s+/
。
答案 1 :(得分:5)
似乎你想做这样的事情:
myString.replace(/\s(\w)\s/,"$1\xA0");
但是这样你就会在你的单字母单词之前松开空格。因此,您可能还希望在捕获组中包含第一个\s
。