Rumah > hujung hadapan web > tutorial js > Petua Pantas: Menguji jika rentetan sepadan dengan regex dalam javascript

Petua Pantas: Menguji jika rentetan sepadan dengan regex dalam javascript

William Shakespeare
Lepaskan: 2025-02-09 10:39:12
asal
743 orang telah melayarinya

Quick Tip: Testing if a String Matches a Regex in JavaScript

mata teras

    kaedah JavaScript adalah alat praktikal untuk memeriksa sama ada rentetan sepadan dengan ungkapan biasa. Kaedah ini menerima rentetan sebagai hujah dan mengembalikan nilai boolean yang menunjukkan sama ada rentetan sepadan dengan ungkapan biasa.
  • test() Ekspresi biasa dalam JavaScript berguna untuk mengesan maklumat dalam rentetan yang boleh ditulis dalam format yang berbeza (seperti tarikh, URL, e -mel, dll.). Mereka menyediakan keadaan ujian rentetan yang lebih fleksibel daripada kaedah seperti
  • .
  • indexOf() Kaedah lain yang sepadan dengan ekspresi biasa JavaScript termasuk
  • ,
  • , dan match. Kaedah ini digunakan untuk mendapatkan sebahagian daripada rentetan yang sepadan dengan ungkapan biasa, cari corak ekspresi biasa dalam rentetan, dan hasil carian. search exec
  • Tutorial pendek ini akan menerangkan cara menggunakan kaedah
untuk menguji sama ada rentetan sepadan dengan ungkapan biasa.

test() berdiri adalah serpihan teks yang boleh mengandungi pelbagai data seperti URL, nombor telefon, nama, nombor, dan sebagainya. Dalam banyak kes, anda perlu menyemak sama ada rentetan mengandungi sekeping teks atau beberapa jenis watak.

Apabila anda menguji jika rentetan mengandungi substring tertentu, anda mungkin cenderung menggunakan kaedah seperti

. Walau bagaimanapun, untuk ujian dan keadaan yang lebih fleksibel, menggunakan ungkapan biasa adalah pilihan yang lebih baik.

indexOf() pemadanan ungkapan biasa JavaScript membolehkan anda menyemak sama ada rentetan mengandungi corak tertentu, substring, atau jenis aksara. Ekspresi biasa berguna untuk mengesan maklumat dalam rentetan yang boleh ditulis dalam format yang berbeza, seperti tarikh.

rentetan ujian dengan ekspresi biasa

Untuk menguji jika rentetan sepadan dengan ungkapan biasa, anda mesti terlebih dahulu membuat contoh ekspresi biasa. Anda kemudian boleh menggunakan kaedah

yang tersedia pada ungkapan biasa untuk memeriksa sama ada rentetan sepadan dengan ungkapan biasa.

Kaedah test()

Menerima parameter: rentetan yang akan diuji terhadap corak. Ia mengembalikan nilai boolean yang menunjukkan sama ada rentetan sepadan dengan ungkapan biasa.

test() Contoh:

Dalam contoh ini, anda membuat corak
const pattern = /test.*regular/;
const str = 'I want to test this string against a regular expression';
if (pattern.test(str)) {
  console.log('Matched');
} else {
  console.log('Not Matched');
}
Salin selepas log masuk
. Corak ini bermaksud bahawa rentetan mesti mengandungi perkataan "ujian" dan "biasa" dalam perintah ini, dan kata -kata boleh dipisahkan oleh sifar atau lebih daripada mana -mana aksara.

test.*regular Jika

kembali

, "dipadankan" direkodkan dalam konsol. Jika tidak, rekod "tidak dipadankan" dalam konsol. test() true Sejak

mengandungi perkataan "ujian" dan "biasa", dan "ujian" sebelum "biasa" dalam rentetan, ia akan sepadan dengan corak dan

akan kembali str. test() true anda juga boleh mengisytiharkan corak menggunakan

pembina:

RegExp

Anda boleh mengujinya dalam demo Codepen di bawah.
const pattern = new RegExp('test.*regular');
const str = 'I want to test this string against a regular expression';
if (pattern.test(str)) {
  console.log('Matched');
} else {
  console.log('Not Matched');
}
Salin selepas log masuk

Contoh biasa

Bahagian ini menunjukkan beberapa contoh tentang cara menggunakan pemadanan ekspresi biasa JavaScript untuk menguji kes penggunaan biasa. Harus diingat bahawa ungkapan biasa yang digunakan di sini mungkin bukan penyelesaian yang sempurna dalam setiap kes. Mereka masing -masing digunakan untuk memberikan contoh mudah bagaimana proses berfungsi.

url ujian

Anda boleh menggunakan ungkapan biasa untuk menguji sama ada rentetan adalah URL. Anda boleh bereksperimen dengan demonstrasi codepen berikut.

Perhatikan bahawa corak ekspresi biasa yang digunakan di atas mengharapkan URL bermula dengan http:// atau https://.

Ujian e -mel

Anda boleh menggunakan ungkapan biasa untuk menguji sama ada rentetan adalah alamat e -mel yang sah. Demonstrasi codepen berikut menunjukkan bagaimana untuk melakukannya.

Tarikh Ujian

Anda boleh menggunakan ungkapan biasa untuk menguji sama ada rentetan adalah tarikh. Demonstrasi codepen berikut menunjukkan bagaimana untuk melakukannya.

Perhatikan bahawa format corak ekspresi biasa yang digunakan di atas adalah "dd-mm-yyyy" atau "dd/mm/yyyy".

cara lain untuk memadankan ekspresi biasa JavaScript

Terdapat cara lain untuk menguji jika rentetan sepadan dengan ungkapan biasa. Artikel ini tidak akan memperkenalkannya sepenuhnya, tetapi berikut adalah gambaran ringkas:

  • match. Kaedah ini boleh didapati pada rentetan. Ia menerima ungkapan biasa sebagai hujah dan mengambil bahagian rentetan yang sepadan dengan ungkapan biasa (jika wujud).
  • search. Kaedah ini boleh didapati pada rentetan. Ia menerima ungkapan biasa sebagai argumen, mencari sama ada corak ekspresi biasa wujud dalam rentetan, dan jika ya, mencari indeks di mana corak pertama muncul dalam rentetan.
  • exec. Kaedah ini tersedia pada ungkapan biasa. Ia mengambil rentetan sebagai hujah, mencari rentetan untuk corak ekspresi biasa, dan mengambil hasilnya (jika ada).

Kesimpulan

Ekspresi biasa berguna untuk menguji sama ada rentetan mengandungi corak atau substring tertentu. Menggunakan pemadanan ekspresi biasa JavaScript, anda boleh menyemak sama ada rentetan adalah URL, tarikh, alamat IP, atau jenis dan format lain.

Kaedah indexOf() yang tersedia pada ekspresi biasa memberikan fleksibiliti yang lebih besar apabila menguji sama ada corak sepadan dengan rentetan daripada menggunakan kaedah lain seperti test().

Bacaan yang berkaitan:

  • ungkapan biasa dalam javascript
  • 3 petua pintar untuk menggunakan ekspresi biasa
  • Buka kunci misteri regex menggunakan contoh sebenar
  • Petua Pantas: Cara Memisahkan Rentetan Ke Substrings Dalam JavaScript

Soalan Lazim pada Pemadanan String Advanced dan Ekspresi Biasa Menggunakan Kaedah Perlawanan JavaScript ()

Apakah tujuan kaedah () dalam JavaScript?

Kaedah match() dalam JavaScript adalah alat yang berkuasa untuk mendapatkan perlawanan apabila rentetan yang sepadan dengan ekspresi biasa. Ia mengembalikan pelbagai keputusan, termasuk keseluruhan rentetan yang sepadan dan mana -mana tanda kurung yang ditangkap. Jika tiada perlawanan dijumpai, kembali null. Kaedah ini amat berguna apabila anda perlu memanipulasi rentetan atau memeriksa kewujudan corak tertentu dalam rentetan.

bagaimana kaedah perlawanan () dalam JavaScript berbeza daripada kaedah rentetan lain?

Tidak seperti kaedah rentetan lain seperti indexOf() atau includes(), kaedah match() membolehkan pencocokan corak yang lebih kompleks. Ia menggunakan ungkapan biasa, yang menyediakan cara yang fleksibel dan ringkas untuk memadankan rentetan teks. Ini menjadikannya alat yang lebih berkuasa untuk tugas -tugas seperti pengesahan bentuk, pengekstrakan data, dan manipulasi rentetan.

Bolehkah anda memberikan contoh cara menggunakan kaedah perlawanan ()?

Sudah tentu, katakan anda mempunyai rentetan dan anda ingin mencari semua kejadian perkataan "ujian". Inilah cara melakukannya: let str = "This is a test. Test is important."; let result = str.match(/test/gi); console.log(result); // ["test", "Test"] Dalam contoh ini, ungkapan biasa /test/gi digunakan. Bendera "G" mewakili carian global, dan bendera "I" mewakili carian kes-insensitif.

Apakah ungkapan biasa dalam JavaScript?

Ekspresi biasa, juga dikenali sebagai regex atau regexp, adalah corak yang digunakan untuk memadankan kombinasi watak dalam rentetan. Dalam JavaScript, ungkapan biasa adalah objek yang boleh ditakrifkan dalam dua cara: menggunakan literals atau menggunakan pembina RegExp. Mereka menyediakan cara yang kuat untuk melakukan corak yang sesuai dengan watak, kata -kata, dan corak watak tertentu.

Bagaimana menggunakan ungkapan biasa dengan kaedah () kaedah?

Anda boleh menggunakan ungkapan biasa secara langsung sebagai parameter ke kaedah match(). Sebagai contoh, jika anda ingin mencari semua nombor dalam rentetan, anda boleh menggunakan watak -watak khas d untuk mewakili nombor dalam ungkapan biasa: let str = "The year is 2022."; let result = str.match(/d /g); console.log(result); // ["2022"] Dalam contoh ini, d sepadan dengan satu atau lebih nombor, dan bendera "G" melakukan carian global untuk semua perlawanan, bukan hanya perlawanan pertama.

Apa yang berlaku jika perlawanan tidak dapat dijumpai apabila menggunakan kaedah perlawanan ()?

Apabila menggunakan kaedah match(), jika tiada perlawanan dijumpai, ia kembali null. Ini berguna untuk pemeriksaan keadaan. Sebagai contoh, anda boleh menyemak sama ada hasilnya adalah null sebelum meneruskan operasi lain dalam kod anda.

Bolehkah saya mengganti bahagian rentetan dengan kaedah perlawanan ()?

Walaupun kaedah match() digunakan terutamanya untuk mencari, jika anda ingin menggantikan sebahagian daripada rentetan berdasarkan corak, JavaScript menyediakan kaedah replace(), yang boleh digunakan dengan ungkapan biasa. Walau bagaimanapun, anda boleh menggunakan kaedah match() untuk mencari bahagian rentetan yang perlu diganti.

Bagaimana menggunakan kaedah perlawanan () untuk menangkap kumpulan?

Anda boleh menangkap kumpulan dengan menggunakan kurungan dalam ekspresi biasa. Kaedah match() mengembalikan kumpulan ini sebagai elemen berasingan dalam array hasil. Contohnya: let str = "The year is 2022."; let result = str.match(/(d )/g); console.log(result); // ["2022"] Dalam contoh ini, (d ) adalah kumpulan yang sepadan dengan satu atau lebih nombor.

Bolehkah saya menggunakan aksara khas dalam ungkapan biasa dengan kaedah perlawanan ()?

Ya, ungkapan biasa menyokong satu siri watak khas yang membolehkan anda membuat corak carian kompleks. Sebagai contoh, d bermaksud mana -mana nombor, w bermaksud mana -mana watak alfanumerik, dan . bermaksud apa -apa watak kecuali garis pecah.

Apakah batasan kaedah () kaedah?

Walaupun kaedah match() berkuasa, ia mempunyai beberapa batasan. Ia hanya boleh digunakan dengan rentetan, bukan dengan jenis data lain. Di samping itu, ia hanya boleh mengembalikan array hasil atau null, bukan nilai boolean. Jika anda memerlukan hasil Boolean, anda mungkin perlu menggunakan kaedah RegExp objek test() sebaliknya.

Atas ialah kandungan terperinci Petua Pantas: Menguji jika rentetan sepadan dengan regex dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan