JavaScript split方法删除前2个部分

时间:2019-06-12 16:21:23

标签: javascript split

我有一个像这样的变量:

GA1.2.721553813.2630350365

我想从该字符串中删除GA1.2.。我正在使用split方法将其除以.,问题是该变量将不会总是具有第三个.,因此我想将我的JavaScript分解为仅返回后面的内容第二个.我该怎么做?

var string = "GA1.2.721553813.2630350365";

// This returns 721553813, I want it to return everything after the second .
var split = string.split('.')[2];

console.log(split);

7 个答案:

答案 0 :(得分:4)

您可以替换第一部分。

var string = "GA1.2.721553813.2630350365",
    result = string.replace(/^([^.]+\.){2}/, '');

console.log(result);

答案 1 :(得分:3)

您也可以使用.slice

var string = "GA1.2.721553813.2630350365";

var split = string.split('.').slice(2).join('.');

console.log(split);

答案 2 :(得分:1)

您可以在第二秒之后获取所有拆分结果,然后将它们重新连接为字符串。

var string = "GA1.2.721553813.2630350365";
var split = string.split('.').slice(2).join('.');
console.log(split);

但是,正则表达式将是这里更简单的选项:

var string = "GA1.2.721553813.2630350365";
var split = string.replace(/^([^.]*[.]){2}/, '');
console.log(split);

答案 3 :(得分:0)

此行将完成您想做的事情

console.log(string.split('.').slice(2).join('.'));

答案 4 :(得分:0)

您可以将String.prototype.match()与正则表达式结合使用。

var string = "GA1.2.721553813.2630350365";

// Always assume GA1.2.
var matchesA = string.match(/GA1\.2\.(.+)/);

console.log(matchesA);
console.log(matchesA[1]);

// more generic:
// G(digit).(digit).
var matchesA = string.match(/GA\d\.\d\.(.+)/);

console.log(matchesB);
console.log(matchesB[1]);

答案 5 :(得分:0)

如果您知道它始终是“ GA1.2”。 (我的意思是长度是6),那么您可以在变量.substr(6)上创建一个子字符串。

如果始终为“ GA1.2”。您可以执行replace(“ GA1.2。”,“”)

答案 6 :(得分:0)

另一种选择是使用String.indexOf()找到与第二(第二个)index相关的dot,然后从该索引开始String.slice()的字符串。

let tests = [
  "GA1.2.721553813.2630350365",
  "LM15.299.721553813313612783",
  "GA33.1.721553813.26.3224",
];

const getCustomSubstr = (str) =>
{
    let idxOf2ndDot = str.indexOf(".", str.indexOf(".") + 1);
    return str.slice(idxOf2ndDot + 1);
};

tests.forEach(t => console.log(t + " => " + getCustomSubstr(t)));
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}