cari

Rumah  >  Soal Jawab  >  teks badan

Ungkapan biasa JavaScript untuk pengesanan dan pemisahan URL

Saya mempunyai URL berikut:

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

Untuk URL ini, saya perlu menentukan fungsi untuk mengesan sama ada ia adalah URL dan menggantikan laluan https:// dan sp daripadanya. Pada asasnya, saya hanya memerlukan nama hos. Sebagai contoh, seperti yang ditunjukkan di bawah:

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

Untuk bukan URL, fungsi ini harus mengesan dan tidak menggantikannya. Seperti yang ditunjukkan di bawah:

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

Bolehkah sesiapa memberi saya penyelesaian kepada masalah di atas? Saya tidak mempunyai banyak pengetahuan tentang menggunakan ungkapan biasa.

P粉043432210P粉043432210548 hari yang lalu712

membalas semua(1)saya akan balas

  • P粉680087550

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

    Corak ^https?:// 在这里应该很容易使用。我们可以用它来替换任何字符串开头的 http://https:// ialah rentetan kosong

    Dalam corak, ^ 符号表示字符串的开头。这意味着如果 http:// berlaku di tengah-tengah rentetan, ia tidak akan sepadan kerana ia mesti pada permulaan

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

    / diperlukan kerana garis miring mesti dilepaskan

    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, ''));
    });

    balas
    0
  • Batalbalas