我有以下替換功能JavaScript的正則表達式替換 - 但只有部分匹配的字符串?
myString.replace(/\s\w(?=\s)/,"$1\xA0");
目的是採取單字母的單詞(例如,介詞)和之後將其添加而不是標準的空間中的非間斷空間,。
但是,上述$ 1變量不適用於我。它插入文本「$ 1」而不是原始匹配的字符串+ nbsp的一部分。
觀察到的行爲的原因是什麼?有沒有其他方法可以實現它?
我有以下替換功能JavaScript的正則表達式替換 - 但只有部分匹配的字符串?
myString.replace(/\s\w(?=\s)/,"$1\xA0");
目的是採取單字母的單詞(例如,介詞)和之後將其添加而不是標準的空間中的非間斷空間,。
但是,上述$ 1變量不適用於我。它插入文本「$ 1」而不是原始匹配的字符串+ nbsp的一部分。
觀察到的行爲的原因是什麼?有沒有其他方法可以實現它?
$ 1不起作用,因爲您沒有任何捕獲子組。
正則表達式應該類似於/\b(\w+)\s+/
。
看來想要做這樣的事情:
myString.replace(/\s(\w)\s/,"$1\xA0");
,但這樣你將你的單字母詞之前鬆散的空白。所以你可能還想把第一個\s
包含在捕獲組中。
嘿,這個作品像魅力!真棒,非常感謝你。我不知道有關「抓捕組」的情況,但有些可疑。 – 2010-02-19 09:51:42
是的,那個「捕捉小組」是我失蹤的作品。非常感謝你! – 2010-02-19 09:52:15
謝謝。這是沒有很好的文件,我不知道它 – 2017-11-03 08:18:32