web-dev-qa-db-ja.com

JavaScriptで大文字で分割

私はJavascriptを使用して大文字で文字列を分割しようとしています、

私がやろうとしていることの例:

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

私はstr.split()メソッドを知っていますが、この関数を大文字で機能させる方法がわかりません。

私はもう試した:

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

残念ながらそれはうまくいきません、どんな助けも素晴らしいでしょう。

45
user1294188

RegExp-literals、先読み、および[A-Z]を使用します。

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

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"]
9
Shiplu Mokaddim

ロブ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);
0
Ste

小文字から始まるテキストの解決策-

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;
0
M3ghana