-6

begin如果字符串的第一部分匹配' ' ,我正在尝试将字符串分成两部分

我有

var str = 'beginThetest';

我想得到一个array['begin','Thetest'];

我已经尝试过substringsplit但在我的情况下似乎不起作用。

有没有办法做到这一点?非常感谢!

4

4 回答 4

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'

当然,如果您愿意,您可以将其放入数组中。

于 2013-07-25T21:06:41.047 回答
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;
}
于 2013-07-25T21:06:37.670 回答
1

可能有点脏,但它有效:)

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

console.warn(array);
于 2013-07-25T21:05:45.793 回答
0

尝试使用 slice 并检查“开始”:

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

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

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

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

}
于 2013-07-25T21:06:28.083 回答