将字符串拆分为两部分

时间:2013-12-09 15:26:34

标签: javascript

我知道有几种方法可以在jQuery中拆分数组,但我有一个特例: 如果我有这两个字符串:

 "G09.4 What"
 "A04.3  A new Code"

当我按' '分割第一个时,我只需选择[0]前面的代码G09.4。当我致电[1]时,我会收到文字:What

但是当我对[1] A获得的第二个字符串执行相同操作时,我想要检索A new Code

那么如何为每个字符串检索代码和单独的文本?

6 个答案:

答案 0 :(得分:20)

使用

var someString = "A04.3  A new Code";
var index = someString.indexOf(" ");  // Gets the first index where a space occours
var id = someString.substr(0, index); // Gets the first part
var text = someString.substr(index + 1);  // Gets the text part

答案 1 :(得分:7)

您可以拆分字符串并移出返回数组中的第一个条目。然后加入剩菜,例如

var chunks = "A04.3  A new Code".split(/\s+/);
var arr = [chunks.shift(), chunks.join(' ')];

// arr[0] = "A04.3"
// arr[1] = "A new Code"

答案 2 :(得分:3)

不要在空格上拆分字符串,而是使用indexOfslice的组合:

var s = "A04.3 A new Code";
var i = s.indexOf(' ');
var partOne = s.slice(0, i).trim();
var partTwo = s.slice(i + 1, s.length).trim();

答案 3 :(得分:2)

您可以使用match()并通过正则表达式捕获所需内容:

"G09.4 What".match(/^(\S+)\s+(.+)/)
  // => ["G09.4 What", "G09.4", "What"]

"A04.3  A new Code".match(/^(\S+)\s+(.+)/)
  // => ["A04.3  A new Code", "A04.3", "A new Code"]

正如您所看到的,您想要的两个项目位于返回数组的[1][2]中。

答案 4 :(得分:2)

这个怎么样:

function split2(str, delim) {
    var parts=str.split(delim);
    return [parts[0], parts.splice(1,parts.length).join(delim)];
}

FIDDLE

或者为了获得更高的性能,请尝试以下方法:

function split2s(str, delim) {
    var p=str.indexOf(delim);
    if (p !== -1) {
        return [str.substring(0,p), str.substring(p+1)];
    } else {
        return [str];
    }
}

答案 5 :(得分:0)

您可以获取代码,然后将其从原始字符串中删除,留下代码和没有代码的字符串。

var originalString = "A04.3  A new Code",
    stringArray = originalString.split(' '),
    code,
    newString;

code = stringArray[0];
newString = originalString.replace(code, '');