我想一個字符串分割成如果字符串匹配的「begin
」字符串分割到2個元素
第一部分我有
var str = 'beginThetest';
我想獲得一個array
像2部分['begin','Thetest'];
我已經試過substring
和split
,但它似乎並不適用於我的情況。
有沒有辦法做到這一點?非常感謝!
我想一個字符串分割成如果字符串匹配的「begin
」字符串分割到2個元素
第一部分我有
var str = 'beginThetest';
我想獲得一個array
像2部分['begin','Thetest'];
我已經試過substring
和split
,但它似乎並不適用於我的情況。
有沒有辦法做到這一點?非常感謝!
你可以用做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'
當然,你可以將它放入一個數組,如果你願意的話。
可能是一點點髒,但它的工作原理:)
var str = 'beginThetest';
var splitter = 'begin';
var array = str.split(splitter);
array[0] = splitter;
console.warn(array);
嘗試使用切片與一檢查 '開始':
var str = 'beginThetest',
arr = [],
breakChar = 5;
if(str.slice(0,breakChar) == 'begin'){
arr.push(str.slice(0,breakChar));
arr.push(str.slice(breakChar));
}
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;
}
將字符串分成兩部分的規則是什麼? –
我們需要更多信息。你想分裂什麼?第一個大寫字母? – sgroves
對不起,開始是關鍵字。每次以'begin'開頭的字符串都將被分成2個元素,begin將始終是第一個元素。 – FlyingCat