2010-02-19 46 views
7

我有以下替換功能JavaScript的正則表達式替換 - 但只有部分匹配的字符串?

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

目的是採取單字母的單詞(例如,介詞)和之後將其添加而不是標準的空間中的非間斷空間,。

但是,上述$ 1變量不適用於我。它插入文本「$ 1」而不是原始匹配的字符串+ nbsp的一部分。

觀察到的行爲的原因是什麼?有沒有其他方法可以實現它?

回答

9

$ 1不起作用,因爲您沒有任何捕獲子組。

正則表達式應該類似於/\b(\w+)\s+/

+0

是的,那個「捕捉小組」是我失蹤的作品。非常感謝你! – 2010-02-19 09:52:15

+0

謝謝。這是沒有很好的文件,我不知道它 – 2017-11-03 08:18:32

5

看來想要做這樣的事情:

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

,但這樣你將你的單字母詞之前鬆散的空白。所以你可能還想把第一個\s包含在捕獲組中。

+0

嘿,這個作品像魅力!真棒,非常感謝你。我不知道有關「抓捕組」的情況,但有些可疑。 – 2010-02-19 09:51:42