2011-01-27 58 views
6

我想在一個字符串中在小寫字母和大寫字母之間添加空格。例如:JavaScript中的字符串中的小寫字母和大寫字母之間的空格

FruityLoops 
FirstRepeat 

現在我想在小寫字母和大寫字母之間加一個空格。我不知道我應該如何從JavaScript開始。 substr或搜索的東西?有人可以幫助我嗎?

+3

@close選民:這究竟是怎樣的XSLT問題的重複? – 2011-01-27 17:48:21

回答

18
var str = "FruityLoops"; 

str = str.replace(/([a-z])([A-Z])/g, '$1 $2'); 

例子:http://jsfiddle.net/3LYA8/

+0

+1。簡明而正確。 – 2011-01-27 17:45:56

+0

@Matt:無法決定? ; o) – user113716 2011-01-27 17:46:48

+0

這是感謝帕特里克的伎倆! – Frank 2011-01-27 17:47:33

3

一些簡單的類似:

"LoL".replace(/([a-z])([A-Z])/g, "$1 $2") 

也許是足夠的;)

2

你可以用手動搜索做到這一點,但它可能是用正則表達式更容易。假設:

  • 你知道它以大寫字母開頭
  • 你不想在首都前面的空間
  • 你想在前面的空間都後續資金

然後:

function spacey(str) { 
    return str.substring(0, 1) + 
      str.substring(1).replace(/[A-Z]/g, function(ch) { 
     return " " + ch; 
    }); 
} 

alert(spacey("FruitLoops")); // "Fruit Loops" 

Live example

更高效的版本啓發(但不同)patrick's answer

function spacey(str) { 
    return str.substring(0, 1) + 
      str.substring(1).replace(/([a-z])?([A-Z])/g, "$1 $2"); 
} 

alert(spacey("FruityLoops")); // "Fruity Loops" 
alert(spacey("FruityXLoops")); // "Fruity X Loops" 

Live example

相關問題