Nota kajian JavaScript (8) Ungkapan biasa_pengetahuan asas

WBOY
Lepaskan: 2016-05-16 16:34:44
asal
1074 orang telah melayarinya

Konsep asas

Ungkapan biasa ialah corak teks yang merangkumi kedua-dua aksara biasa (contohnya, huruf antara a dan z) dan aksara khas (dipanggil "metacharacters"). Corak menerangkan satu atau lebih rentetan untuk dipadankan semasa mencari teks.

Pertama sekali, kami mengesyorkan beberapa editor ekspresi biasa
Debuggex: https://www.debuggex.com/
PyRegex:http://www.pyregex.com/
Pakar semula: http://www.regexper.com/

Ungkapan biasa ialah operasi carian dan penggantian rentetan. Ungkapan biasa digunakan secara meluas dalam penyunting teks Contohnya, ungkapan biasa digunakan:
[copy] Semak sama ada teks mengandungi perkataan ciri yang ditentukan
Cari kedudukan perkataan ciri yang sepadan dalam teks
Ekstrak maklumat daripada teks, seperti: subrentetan rentetan
Ubah suai teks

Penerangan: Ungkapan biasa biasanya digunakan untuk dua tugas: 1. Pengesahan, 2. Cari/ganti. Apabila digunakan untuk pengesahan, biasanya perlu menambah ^ dan $ sebelum dan selepas untuk memadankan keseluruhan rentetan untuk disahkan sama ada untuk menambah had ini semasa mencari/menggantikan bergantung pada keperluan carian Selain itu, ia juga mungkin perlu tambah sebelum dan selepas b bukannya ^ dan $. Ungkapan biasa yang biasa digunakan yang disenaraikan dalam jadual ini tidak didahului atau diikuti oleh sebarang sekatan kecuali beberapa. Sila kendalikannya sendiri mengikut keperluan anda.

Pesanan keutamaan

Selepas ungkapan biasa dibina, ia boleh dinilai seperti ungkapan matematik, iaitu, ia boleh dinilai dari kiri ke kanan dan dalam susunan keutamaan. Jadual berikut menyenaraikan susunan keutamaan pelbagai pengendali ungkapan biasa daripada keutamaan tertinggi kepada keutamaan terendah:

操作符 描述
转义符
(), (?:), (?=), [] 圆括号和方括号
*, , ?, {n}, {n,}, {n,m} 限定符
^, $, anymetacharacter 位置和顺序

Buat ungkapan biasa

Membina ungkapan biasa adalah sama seperti mencipta ungkapan matematik. Iaitu, menggunakan pelbagai metakarakter dan pengendali untuk menggabungkan ungkapan kecil untuk mencipta ungkapan yang lebih besar.
Ungkapan biasa boleh dibina dengan meletakkan pelbagai komponen corak ungkapan antara sepasang pembatas.

Untuk JScript, pembatas ialah sepasang aksara garis miring (/) ke hadapan. Contohnya:
/ungkapan/

Untuk VBScript, sepasang tanda petikan ("") digunakan untuk menentukan sempadan ungkapan biasa. Contohnya:

Salin kod Kod adalah seperti berikut:

"ungkapan"

Mari lihat contoh

Salin kod Kod adalah seperti berikut:

//Sama ada akaun yang sepadan adalah sah (bermula dengan huruf, 5-16 bait dibenarkan, garis bawah alfanumerik dibenarkan

var re =new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,19}$");
if(re.test(aaaa)){
alert("Format yang betul");
}lain{
makluman("Ralat format");
}

Komponen ungkapan biasa boleh menjadi satu aksara, koleksi aksara, julat aksara, pilihan antara aksara atau mana-mana gabungan semua komponen ini.

Ungkapan biasa yang biasa digunakan

Ungkapan biasa yang sepadan dengan aksara Cina: [u4e00-u9fa5]
Komen: Memadankan bahasa Cina memang sakit kepala Dengan ungkapan ini, ia akan menjadi lebih mudah

Padankan aksara dwibait (termasuk aksara Cina): [^x00-xff]
Ulasan: Boleh digunakan untuk mengira panjang rentetan (panjang aksara dua bait dikira sebagai 2, dan panjang aksara ASCII dikira sebagai 1)

Ungkapan biasa yang sepadan dengan baris kosong: ns*r
Ulasan: Boleh digunakan untuk memadam baris kosong

Ungkapan biasa yang sepadan dengan teg HTML: <(S*?)[^>]*>.*?|<.*? Komen: Versi yang beredar di Internet terlalu teruk. Versi di atas hanya boleh memadankan sebahagian daripadanya, dan ia masih tidak berkuasa untuk teg bersarang yang kompleks

Ungkapan biasa yang sepadan dengan aksara ruang kosong di hadapan dan di belakang: ^s*|s*$

Ulasan: Ia boleh digunakan untuk memadamkan aksara ruang putih pada permulaan dan penghujung baris (termasuk ruang, tab, suapan borang, dll.), ungkapan yang sangat berguna

Ungkapan biasa yang sepadan dengan alamat e-mel: w ([- .]w )*@w ([-.]w )*.w ([-.]w )*

Komen: Sangat berguna untuk pengesahan borang

URL padanan ungkapan biasa: [a-zA-z]://[^s]*

Ulasan: Versi yang beredar di Internet mempunyai fungsi yang sangat terhad
Adakah akaun yang sepadan itu sah (bermula dengan huruf, 5-16 bait dibenarkan, garis bawah alfanumerik dibenarkan): ^[a-zA-Z][a-zA-Z0-9_]{4,15}$

Komen: Sangat berguna untuk pengesahan borang


Padankan nombor telefon domestik: d{3}-d{8}|d{4}-d{7}

Komen: Format padanan seperti 0511-4405222 atau 021-87888822


Padan dengan nombor QQ Tencent: [1-9][0-9]{4,}

Komen: Akaun Tencent QQ bermula dari 10000


Padankan poskod Cina: [1-9]d{5}(?!d)

Ulasan: Poskod China ialah nombor 6 digit


Kad ID yang sepadan: d{15}|d{18}

Ulasan: Kad pengenalan China mempunyai 15 atau 18 digit


Padankan alamat ip: d .d .d .d

Komen: Berguna apabila mengekstrak alamat IP


Padankan nombor tertentu

[salinan] ^[1-9]d*$  ​​​​// Padankan integer positif

^-[1-9]d*$ // Padankan integer negatif
^-?[1-9]d*$  ​​​​//Padankan integer
^[1-9]d*|0$ // Padankan integer bukan negatif (integer positif 0)
^-[1-9]d*|0$  // Padankan integer bukan positif (integer negatif 0)
^[1-9]d*.d*|0.d*[1-9]d*$  ​​​​ //Padankan nombor titik terapung positif
^-([1-9]d*.d*|0.d*[1-9]d*)$ //Padankan nombor titik terapung negatif
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0 |0)$ //Padankan nombor titik terapung
^[1-9]d*.d*|0.d*[1-9]d*|0?.0 |0$  //Padankan nombor titik terapung bukan negatif (nombor titik terapung positif 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0 |0$  //Padankan nombor titik terapung bukan positif (nombor titik terapung negatif 0)

Komen: Berguna semasa memproses sejumlah besar data, sila beri perhatian kepada pembetulan apabila memohon secara khusus

Padankan rentetan tertentu

[copy]^[A-Za-z] $ //Padankan rentetan yang terdiri daripada 26 huruf Inggeris

^[A-Z] $ // Memadankan rentetan yang terdiri daripada 26 huruf besar Inggeris
^[a-z] $ // Memadankan rentetan yang terdiri daripada 26 huruf kecil Inggeris
^[A-Za-z0-9] $ // Memadankan rentetan yang terdiri daripada nombor dan 26 huruf Inggeris
^w $  // Memadankan rentetan yang terdiri daripada nombor, 26 huruf Inggeris atau garis bawah

Komen: Beberapa ungkapan yang paling asas dan biasa digunakan

Peta Minda

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!