50

Javascriptを使用して大文字で文字列を分割しようとしていますが、

私がやろうとしていることの例:

"HiMyNameIsBob"  ->   "Hi My Name Is Bob"
"GreetingsFriends" -> "Greetings Friends"

メソッドは知ってstr.split()いますが、この関数を大文字で機能させる方法がわかりません。

私はもう試した:

str.split("(?=\\p{Upper})")

残念ながらそれはうまくいきません。

4

4 に答える 4

112

正規表現リテラル、先読み、および を使用します[A-Z]

console.log(
  // -> "Hi My Name Is Bob"
  window.prompt('input string:', "HiMyNameIsBob").split(/(?=[A-Z])/).join(" ")  
)

于 2012-04-08T17:13:43.867 に答える
9

String.match を使用して分割できます。

"HiMyNameIsBob".match(/[A-Z]*[^A-Z]+/g) 
// output 
// ["Hi", "My", "Name", "Is", "Bob"]

先頭に小文字がある場合は、それも分割できます。この動作を望まない場合は、+代わりに*パターンを使用してください。

"helloHiMyNameIsBob".match(/[A-Z]*[^A-Z]+/g) 
// Output
["hello", "Hi", "My", "Name", "Is", "Bob"]
于 2012-04-08T17:17:44.307 に答える