私はJavascriptを使用して大文字で文字列を分割しようとしています、
私がやろうとしていることの例:
_"HiMyNameIsBob" -> "Hi My Name Is Bob"
"GreetingsFriends" -> "Greetings Friends"
_
私はstr.split()
メソッドを知っていますが、この関数を大文字で機能させる方法がわかりません。
私はもう試した:
_str.split("(?=\\p{Upper})")
_
残念ながらそれはうまくいきません、どんな助けも素晴らしいでしょう。
RegExp-literals、先読み、および[A-Z]
を使用します。
"HiMyNameIsBob".split(/(?=[A-Z])/).join(" "); // -> "Hi My Name Is Bob"
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"]
ロブ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;