Maison  >  Questions et réponses  >  le corps du texte

Expressions régulières JavaScript pour la détection et le fractionnement d'URL

J'ai l'URL suivante :

https://comanage.example.edu/sp
https://wiki.cs.example.org/sp
https://intranet.math.example.edu/sp
https://myapp.example.com/sp

Pour ces URL, je dois définir une fonction pour détecter s'il s'agit d'URL et remplacer les chemins https:// et sp à partir d'elles. En gros, j'ai juste besoin du nom d'hôte. Par exemple, comme indiqué ci-dessous :

https://comanage.example.edu/sp      ->comanage.example.edu
https://wiki.cs.example.org/sp       ->wiki.cs.example.org
https://intranet.math.example.edu/sp ->intranet.math.example.edu
https://myapp.example.com/sp         ->myapp.example.com

Pour les non-URL, cette fonction doit les détecter et non les remplacer. Comme indiqué ci-dessous :

nonurl.example.com -> ***no replacement***

Quelqu'un peut-il me fournir une solution au problème ci-dessus ? Je n'ai pas beaucoup de connaissances sur l'utilisation des expressions régulières.

P粉043432210P粉043432210415 Il y a quelques jours620

répondre à tous(1)je répondrai

  • P粉680087550

    P粉6800875502023-09-22 12:48:19

    Le motif ^https?:// 在这里应该很容易使用。我们可以用它来替换任何字符串开头的 http://https:// est la chaîne vide

    Dans un motif, ^ 符号表示字符串的开头。这意味着如果 http:// apparaît au milieu d'une chaîne, il ne correspondra pas car il doit être au début

    ? 将前一个字符标记为可选。在模式中,s 是可选的,以便找到 httphttps

    / est obligatoire car les barres obliques doivent être échappées

    const urls = [
      'https://comanage.example.edu/sp',
      'https://wiki.cs.example.org/sp',
      'https://intranet.math.example.edu/sp',
      'https://myapp.example.com/sp',
      'nonurl.example.com',
    ];
    
    const pattern = /^https?:\/\//i;
    
    urls.forEach(u => {
      console.log(u, '-->', u.replace(pattern, ''));
    });

    répondre
    0
  • Annulerrépondre