mata teras
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 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
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
Kaedah test()
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'); }
test.*regular
Jika
, "dipadankan" direkodkan dalam konsol. Jika tidak, rekod "tidak dipadankan" dalam konsol. test()
true
Sejak
akan kembali str
. test()
true
anda juga boleh mengisytiharkan corak menggunakan
RegExp
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'); }
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.
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://
.
Anda boleh menggunakan ungkapan biasa untuk menguji sama ada rentetan adalah alamat e -mel yang sah. Demonstrasi codepen berikut menunjukkan bagaimana untuk melakukannya.
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".
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). 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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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!