我有一个像这样的变量:
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);
答案 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;}