Je souhaite extraire la dernière partie de cette chaîne: " https://steamcommunity.com/profiles/76561198364464404 ". Juste les chiffres après '/profiles'.Mais le problème est que l'URL peut changer parfois.

Il existe deux types d'URL

1.Le premier est "https://steamcommunity.com/profiles/76561198364464404" avec "/ profiles "et ensuite" id "(id est le nombre après '/ profiles').

2. "https://steamcommunity.com/id/purotexnuk" .Le deuxième est ce type.Où "/ profiles" n'existe pas.

J'ai trouvé ce code:

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));

Le code ci-dessus vérifie si la chaîne "/ profiles" est présente. Si la chaîne contient "/profiles".inc sera 9. Donc, cette tranche commence à partir du côté droit de la chaîne (url) et se termine au premier '/' à partir de la droite.inc est 9 car la longueur de "profiles /" est 9. De la même manière si la chaîne (url) contient "id". La tranche commencera à partir de la fin et s'arrêtera au premier '/' de la droite. être 3 car la longueur de «id /» est 3.

L'index est toujours constant car "/ profiles" ou "/ id" n'apparaît qu'après " https://steamcommunity.com "dont la longueur est de 27. Existe-t-il une meilleure façon d'extraire uniquement l'identifiant ou le nom du profil?"

(ID de profil - 76561198364464404)

(nom du profil - purotexnuk)

0
EaGLE 5 mai 2020 à 19:24

3 réponses

Meilleure réponse

Ou faites-le en une seule ligne:

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

Vous pouvez diviser la chaîne avec le délimiteur / et renvoyer la dernière valeur de valeur du tableau;

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 mai 2020 à 16:30

Vous pouvez utiliser regex pour cela, cela prendra également soin si votre URL se termine par / ou a des paramètres de requête, exemple https://steamcommunity.com/id/purotexnuk?ref=abc

/.*(?:profiles|id)\/([a-z0-9]+)[\/?]?/i

Exemple:

const regex = /.*(?:profiles|id)\/([a-z0-9]+)[\/?]?/i;
const matches = regex.exec('https://steamcommunity.com/id/purotexnuk');
console.log(matches[1]);
0
Shubanker 5 mai 2020 à 16:37