在Javascript中通过Caps拆分

时间:2012-04-08 17:12:21

标签: javascript regex split

我正在尝试使用Javascript,

分割字符串

我想做的事情的例子:

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

我知道str.split()方法,但我不知道如何使用大写字母来使用此函数。

我试过了:

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

不幸的是,这不起作用, 任何帮助都会很棒。

4 个答案:

答案 0 :(得分:101)

使用RegExp-literals,前瞻和[A-Z]

"HiMyNameIsBob".split(/(?=[A-Z])/).join(" ");  // -> "Hi My Name Is Bob"

答案 1 :(得分:8)

您可以使用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"]

答案 2 :(得分:0)

以小写字母开头的文本的解决方案-

ThisDocument

答案 3 :(得分:0)

扩展Rob W的答案。

通过添加[a-z]来检查前面的小写字符,这可以处理任何带有缩写的句子,因此,它不会溢出任何大写的字符串。

// Enter your code description here
 var str = "THISSentenceHasSomeFunkyStuffGoingOn. ABBREVIATIONSAlsoWork.".split(/(?=[A-Z][a-z])/).join(" ");  // -> "THIS Sentence Has Some Funky Stuff Going On. ABBREVIATIONS Also Work."
 console.log(str);