javascript 将字符串拆分为两部分[重复]

wrrgggsh  于 2023-05-21  发布在  Java
关注(0)|答案(6)|浏览(89)

此问题已在此处有答案

Split string once in javascript?(17回答)
9年前关闭。
我知道在jQuery中有几种方法来拆分数组,但我有一个特殊的情况:例如,如果我有这两个字符串:

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

当我用' '拆分第一个时,我可以简单地选择前面的代码[0],即G09.4。当我调用[1]时,我得到的文本是:What
但是当我对第二个字符串做同样的操作时,我得到了[1]A,但我想检索A new Code
那么,我如何检索每个字符串的代码和单独的文本呢?

gc0ot86w

gc0ot86w1#

使用方式

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

jckbn6z72#

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

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

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

lvjbypge3#

不使用空格分割字符串,而是使用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();
4nkexdtk

4nkexdtk4#

您可以使用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]中。

y0u0uwnf

y0u0uwnf5#

这个呢

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];
    }
}
sshcrbum

sshcrbum6#

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

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

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

相关问题