2013-10-21 66 views
1

我想將TitleCase(或camelCase)字符串分成兩部分,使用javascript。我知道我可以通過先行它拆分成多個部分:正則表達式來從TitleCase中得到最後一個單詞,camelCase

"StringToSplit".split(/(?=[A-Z])/); 

,它將使一個數組['String', 'To', 'Split']

但我需要的是把它分解成精確的兩部分,產生類似的數組這樣的:

['StringTo', 'Split'] 

,其中第二元素總是在首字母大寫的最後一個字,並且第一個元素是一切它前面。

回答

3

這是你在找什麼?

"StringToSplit".split(/(?=[A-Z][a-z]+$)/); // ["StringTo", "Split"] 

基於lolol答案改進:

"StringToSplit".split(/(?=[A-Z][^A-Z]+$)/); // ["StringTo", "Split"] 
+0

奇蹟般有效!感謝你們兩位! – user2903763

0

使用方法如下:

s = "StringToSplit"; 
last = s.replace(/^.*?([A-Z][a-z]+)(?=$)/, '$1'); // Split 
first = s.replace(last, ''); // StringTo 

tok = [first, last]; // ["StringTo", "Split"] 
0

你可以使用

(function(){ 
    return [this.slice(0,this.length-1).join(''), this[this.length-1]]; 
}).call("StringToSplit".split(/(?=[A-Z])/)); 
//=> ["StringTo", "Split"] 

在[其他]關鍵詞:

  • 創建Array使用splitString
  • 加入該Arrayslice沒有的是 Array
  • 的最後一個元素添加和最後一個元素到最後Array
相關問題