2013-07-25 133 views
-6

我想一個字符串分割成如果字符串匹配的「begin字符串分割到2個元素

第一部分我有

var str = 'beginThetest'; 

我想獲得一個array像2部分['begin','Thetest'];

我已經試過substringsplit,但它似乎並不適用於我的情況。

有沒有辦法做到這一點?非常感謝!

+1

將字符串分成兩部分的規則是什麼? –

+1

我們需要更多信息。你想分裂什麼?第一個大寫字母? – sgroves

+0

對不起,開始是關鍵字。每次以'begin'開頭的字符串都將被分成2個元素,begin將始終是第一個元素。 – FlyingCat

回答

2

你可以用做String.split函數,它使用分隔符/標記將字符串拆分爲數組:

var token = 'begin'; 
var str = 'beginThetest'; 
var parts = str.split(token); 

alert(parts[0]); //'Thetest' 

如果你不完全瞭解String.split

parts數組只包含一個元素(parts[0]),因爲在你的字符串中的令牌('begin')的唯一發生前沒有任何字符。

一個更長的例子應該明確這一點:

var token = 'begin'; 
var str = 'THIS_TESTbeginTHAT_TESTbeginLAST_TEST'; 
var parts = str.split(token); 

alert(parts[0]); //'THIS_TEST' 
alert(parts[1]); //'THAT_TEST' 
alert(parts[2]); //'LAST_TEST' 

但如果'begin'永遠是你的道理,有什麼意義?你並不需要split,你可以這樣做:

var str = 'beginThetest'; 
var token = 'begin'; 
var index = token.length; 

var the_rest = str.substr(index); 
alert(the_rest); //'Thetest' 

當然,你可以將它放入一個數組,如果你願意的話。

1

可能是一點點髒,但它的工作原理:)

var str = 'beginThetest'; 
var splitter = 'begin'; 
var array = str.split(splitter); 
array[0] = splitter; 

console.warn(array); 
0

嘗試使用切片與一檢查 '開始':

var str = 'beginThetest', 
    arr = [], 
    breakChar = 5; 

if(str.slice(0,breakChar) == 'begin'){ 

    arr.push(str.slice(0,breakChar)); 

    arr.push(str.slice(breakChar)); 

} 
1
var parts = splitter("beginThetest", "begin"); 


function splitter(input, term) 
{ 
    var ret = new Array(); 

    var index = input.indexOf(term); 

    if(index != -1) 
    { 
     ret.push(input.substring(index, term.length)); 
     ret.push(input.substring(index + term.length, input.length)); 
    }  

    return ret; 
}