将字符串拆分为2个元素

时间:2013-07-25 21:01:12

标签: javascript jquery

如果字符串的第一部分匹配“begin

,我正在尝试将字符串拆分为2部分

我有

var str = 'beginThetest';

我希望获得array <{1}}

我尝试了['begin','Thetest'];substring,但在我的案例中似乎没有用。

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

4 个答案:

答案 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) );

}