Метод разделения JavaScript удалить первые 2 раздела - PullRequest
1 голос
/ 12 июня 2019

У меня есть такая переменная:

GA1.2.721553813.2630350365

Я бы хотел удалить GA1.2. из этой строки. Я использую метод split, чтобы разделить его на ., проблема в том, что переменная не всегда будет иметь 3-й ., поэтому я хочу учесть свой JavaScript, чтобы просто возвращать то, что следует после 2-го ., как я бы сделал это?

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 ]

4 голосов
/ 12 июня 2019

Вы можете заменить первую часть.

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

console.log(result);
3 голосов
/ 12 июня 2019

Вы также можете использовать .slice

var string = "GA1.2.721553813.2630350365";

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

console.log(split);
1 голос
/ 12 июня 2019

Вы можете взять все результаты разбиения после секунды и соединить их обратно в строку.

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);
0 голосов
/ 12 июня 2019

Другая альтернатива - найти index, относящийся ко второму (2-му) dot, используя String.indexOf () , а затем 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;}
0 голосов
/ 12 июня 2019

Если вы знаете, что это всегда будет «GA1.2».(я имею в виду, длина равна 6), тогда вы можете сделать подстроку переменной .substr (6).

Если ее всегда "GA1.2."Вы можете сделать замену ("GA1.2.", "")

0 голосов
/ 12 июня 2019

Вы можете использовать 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]);
0 голосов
/ 12 июня 2019

Эта строка будет делать то, что вы хотите сделать

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