在Javascript中通过Caps拆分

use*_*188 44 javascript regex split

我试图通过使用Javascript的大写字母拆分字符串,

我试图做的例子:

"HiMyNameIsBob"  ->   "Hi My Name Is Bob"
"GreetingsFriends" -> "Greetings Friends"
Run Code Online (Sandbox Code Playgroud)

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

我试过了:

str.split("(?=\\p{Upper})")
Run Code Online (Sandbox Code Playgroud)

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

Rob*_*b W 104

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

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

  • 不要在这里挑剔,但我也需要这个.上面的答案不会返回"你好我的名字是鲍勃".它返回一个数组.要实际得到一个字符串,请执行以下操作:`input.split(/(?= [AZ])/).join("");` (7认同)

Shi*_*dim 9

您可以使用String.match来拆分它.

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

如果你在开头有小写字母,它也可以拆分.如果你不想要这种行为,只需使用+而不是*在模式中.

"helloHiMyNameIsBob".match(/[A-Z]*[^A-Z]+/g) 
// Output
["hello", "Hi", "My", "Name", "Is", "Bob"]
Run Code Online (Sandbox Code Playgroud)