我正在尝试使用 Javascript 通过大写拆分字符串,
我试图做的例子:
"HiMyNameIsBob" -> "Hi My Name Is Bob"
"GreetingsFriends" -> "Greetings Friends"
我知道该str.split()
方法,但是我不确定如何使此功能与大写字母一起使用。
我试过了:
str.split("(?=\\p{Upper})")
不幸的是,这不起作用,任何帮助都会很棒。
我正在尝试使用 Javascript 通过大写拆分字符串,
我试图做的例子:
"HiMyNameIsBob" -> "Hi My Name Is Bob"
"GreetingsFriends" -> "Greetings Friends"
我知道该str.split()
方法,但是我不确定如何使此功能与大写字母一起使用。
我试过了:
str.split("(?=\\p{Upper})")
不幸的是,这不起作用,任何帮助都会很棒。
使用 RegExp-literals、前瞻和[A-Z]
:
console.log(
// -> "Hi My Name Is Bob"
window.prompt('input string:', "HiMyNameIsBob").split(/(?=[A-Z])/).join(" ")
)
您可以使用 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"]
扩展 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);
以小写字母开头的文本的解决方案 -
let value = "getMeSomeText";
let newStr = '';
for (var i = 0; i < value.length; i++) {
if (value.charAt(i) === value.charAt(i).toUpperCase()) {
newStr = newStr + ' ' + value.charAt(i)
} else {
(i == 0) ? (newStr += value.charAt(i).toUpperCase()) : (newStr += value.charAt(i));
}
}
return newStr;