Я хочу извлечь последнюю часть этой строки: " https://steamcommunity.com/profiles/76561198364464404 ". Просто цифры после '/profiles'. Но проблема в том, что URL может иногда меняться.

Есть два типа URL

1. Первый - это https://steamcommunity.com/profiles/76561198364464404 с профилями / "и затем" id "(id - это числа после '/ profile').

2. "https://steamcommunity.com/id/purotexnuk". Вторым является этот тип. Где «/ profile» не существует.

Я придумал этот код:

let inc;
const index = 27;
const string = 'https://steamcommunity.com/id/purotexnuk';
if (string.includes('profiles')) {
    inc = 9;
} else {
    inc = 3;
}

console.log(string.slice(index + inc, -1));

Приведенный выше код проверяет, присутствует ли строка «/ profile». Если строка содержит «/profiles".inc, будет 9. Так что срез начинается с правой стороны строки (url) и заканчивается первым '/' от right.inc равно 9, потому что длина «profile /» равна 9. Аналогичным образом, если строка (url) содержит «id». Срез начнется с конца и остановится на первом символе «/» справа. быть 3, потому что "id /" длина равна 3.

Индекс всегда постоянен, потому что "/ profile" или "/ id" встречаются только после " https://steamcommunity.com "чья длина 27. Есть ли лучший способ, которым я могу извлечь только идентификатор профиля или имя профиля?

(идентификатор профиля - 76561198364464404)

(имя профиля - purotexnuk)

0
EaGLE 5 Май 2020 в 19:24

2 ответа

Лучший ответ

Или сделать это в одну строку:

const string = 'https://steamcommunity.com/id/purotexnuk';
console.log(string.slice(string.lastIndexOf("/") + 1, string.length));
0
Clutch Prince 5 Май 2020 в 16:32

Вы можете разделить строку с помощью разделителя / и вернуть значение последнего значения из массива;

function getNum(str) {
  const arr = str.split('/');
  if (!isNaN(arr[arr.length - 1])) {
    return arr[arr.length - 1];
  }
  return ' no number ';
}

const st1 = "https://steamcommunity.com/profiles/76561198364464404";
const st2 = "https://steamcommunity.com/profiles/76561198364464404";
const st3 = "https://steamcommunity.com/id/purotexnuk";

console.log(getNum(st1));
console.log(getNum(st2));
console.log(getNum(st3));
1
brk 5 Май 2020 в 16:30