我想在一個字符串中在小寫字母和大寫字母之間添加空格。例如:JavaScript中的字符串中的小寫字母和大寫字母之間的空格
FruityLoops
FirstRepeat
現在我想在小寫字母和大寫字母之間加一個空格。我不知道我應該如何從JavaScript開始。 substr或搜索的東西?有人可以幫助我嗎?
我想在一個字符串中在小寫字母和大寫字母之間添加空格。例如:JavaScript中的字符串中的小寫字母和大寫字母之間的空格
FruityLoops
FirstRepeat
現在我想在小寫字母和大寫字母之間加一個空格。我不知道我應該如何從JavaScript開始。 substr或搜索的東西?有人可以幫助我嗎?
var str = "FruityLoops";
str = str.replace(/([a-z])([A-Z])/g, '$1 $2');
+1。簡明而正確。 – 2011-01-27 17:45:56
@Matt:無法決定? ; o) – user113716 2011-01-27 17:46:48
這是感謝帕特里克的伎倆! – Frank 2011-01-27 17:47:33
一些簡單的類似:
"LoL".replace(/([a-z])([A-Z])/g, "$1 $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"
更高效的版本啓發(但不同)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"
的正則表達式選項看起來是最好的。獲得正則表達式似乎很棘手。
這裏還有另外一個問題,一些較爲複雜的選項嘗試:
Regular expression, split string by capital letter but ignore TLA
@close選民:這究竟是怎樣的XSLT問題的重複? – 2011-01-27 17:48:21