begin
如果字符串的第一部分匹配' ' ,我正在尝试将字符串分成两部分
我有
var str = 'beginThetest';
我想得到一个array
赞['begin','Thetest'];
我已经尝试过substring
,split
但在我的情况下似乎不起作用。
有没有办法做到这一点?非常感谢!
begin
如果字符串的第一部分匹配' ' ,我正在尝试将字符串分成两部分
我有
var str = 'beginThetest';
我想得到一个array
赞['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 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;
}
可能有点脏,但它有效:)
var str = 'beginThetest';
var splitter = 'begin';
var array = str.split(splitter);
array[0] = splitter;
console.warn(array);
尝试使用 slice 并检查“开始”:
var str = 'beginThetest',
arr = [],
breakChar = 5;
if(str.slice(0,breakChar) == 'begin'){
arr.push( str.slice(0,breakChar) );
arr.push( str.slice(breakChar) );
}