我正在尝试使用Javascript,
分割字符串我想做的事情的例子:
"HiMyNameIsBob" -> "Hi My Name Is Bob"
"GreetingsFriends" -> "Greetings Friends"
我知道str.split()
方法,但我不知道如何使用大写字母来使用此函数。
我试过了:
str.split("(?=\\p{Upper})")
不幸的是,这不起作用, 任何帮助都会很棒。
答案 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);