78

次のコードを使用してキャメルケースの文字列を大文字で分割する JavaScript の正規表現があります (これは後でhereから取得しました)。

"MyCamelCaseString"
    .replace(/([A-Z])/g, ' $1')
    .replace(/^./, function(str){ return str.toUpperCase(); })

したがって、次のように返されます。

"My Camel Case String"

どっちがいい。とはいえ、これをワンランク上げたい。前者の文字が小文字で後者の文字が大文字の場合にのみ分割される正規表現を誰かが手伝ってくれませんか。

したがって、上記の例は私が期待する結果になりますが、そうすると:

"ExampleID"

それから私は返されます:

"Example ID"

それ以外の

"Example I D"

大文字ごとに分割され、その前のものは無視されるためです。

それが理にかなっていることを願っています!ありがとう :)。

4

14 に答える 14

44
"MyCamelCaseString".replace(/([a-z](?=[A-Z]))/g, '$1 ')

出力:

"My Camel Case String"
于 2013-08-22T11:45:36.227 に答える
0
a = 'threeBlindMice'
a.match(/[A-Z]?[a-z]+/g) // [ 'three', 'Blind', 'Mice' ]

単純なキャメル/タイトルケース分割のために、私が見つけた最も簡単な方法です。

于 2020-06-24T16:25:39.053 に答える
0

regExreplace、および を組み合わせて使用​​できますtrim

"ABCMyCamelCaseSTR".replace(/([A-Z][a-z0-9]+)/g, ' $1 ')
                   .replace(/\s{2}/g," ").trim()

// ABC My Camel Case STR
于 2020-02-17T11:03:53.470 に答える
-4

この正規表現文字列は

.replace("/([a-zA-Z][a-z]*)/g",...);
于 2013-08-22T11:45:43.047 に答える