如果字符串的第一部分匹配“begin
”
我有
var str = 'beginThetest';
我希望获得array
<{1}}
我尝试了['begin','Thetest'];
和substring
,但在我的案例中似乎没有用。
有没有办法做到这一点?非常感谢!
答案 0 :(得分: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 :(得分:1)
可能有点脏,但它有效:)
var str = 'beginThetest';
var splitter = 'begin';
var array = str.split(splitter);
array[0] = splitter;
console.warn(array);
答案 2 :(得分: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;
}
答案 3 :(得分:0)
尝试使用切片并检查'begin':
var str = 'beginThetest',
arr = [],
breakChar = 5;
if(str.slice(0,breakChar) == 'begin'){
arr.push( str.slice(0,breakChar) );
arr.push( str.slice(breakChar) );
}