Rumah >hujung hadapan web >tutorial js >Ringkasan definisi ungkapan biasa javascript (tatabahasa)_kemahiran javascript

Ringkasan definisi ungkapan biasa javascript (tatabahasa)_kemahiran javascript

WBOY
WBOYasal
2016-05-16 15:21:05980semak imbas

Artikel ini membincangkan tentang definisi ungkapan biasa javascript (tatabahasa). Kongsikan dengan semua orang untuk rujukan anda, butirannya adalah seperti berikut:

Terdapat dua cara untuk mentakrifkan ungkapan biasa: satu ialah memanggil RegExp() secara langsung, dan yang kedua ialah mentakrifkannya secara langsung dengan literal, iaitu, var re = /peraturan biasa/;

Kedua-dua kaedah takrifan pada dasarnya memanggil kaedah RegExp()

Apabila memanggil kod biasa yang sama, gelagat dalam ECMAScript3 dan ECMAScript5 adalah berbeza sama sekali

function reg(){
 var re = /\sjavascript/;
 return re;
}

Panggil kaedah reg() beberapa kali dalam ECMAScript3 dan ECMAScript5 masing-masing

Dalam ECMAScript3, objek RegExp yang sama dipanggil, tetapi dalam ECMAScript5, objek RegExp yang berbeza dipanggil kerana setiap kali ia dilaksanakan dalam EXCMAScript5, objek RegExp baharu dijana

Jadi akan ada bahaya tersembunyi dalam program dalam ECMAScript3, kerana selagi objek diubah suai di satu tempat, semua tempat yang memanggil objek ini akan berubah.

1. Watak langsung

biasanya padan dengan aksara secara langsung dalam ungkapan biasa, seperti

/javascript/
Akan dipadankan secara langsung dengan javascript aksara

juga menyokong padanan aksara bukan huruf, seperti:

o aksara NUL (u0000)

T aksara tab (u0009)

n Watak pemisah baris (u000A)

v Tab Menegak (u000B)

f Bentuk aksara suapan (u000C)

r Watak pemulangan pengangkutan (u000D)

aksara Latin xnn yang ditentukan oleh nombor perenambelasan nn, contohnya, x0A bersamaan dengan

Watak Unicode uxxxx yang ditentukan oleh nombor heksadesimal xxxx, contohnya u0009 bersamaan dengan

Kawalan cX aksara ^X, contohnya, cJ bersamaan dengan aksara baris baharu n

Dalam ungkapan biasa, terdapat beberapa tanda baca dengan makna istimewa yang perlu dilepaskan dengan ''

^$.* ?=!:|/()[]{}

2. Kelas watak

[...] Mana-mana aksara dalam kurungan segi empat sama

[^...] Mana-mana aksara yang tidak berada dalam kurungan segi empat sama

. Mana-mana watak

w Mana-mana perkataan yang terdiri daripada aksara ASCII, bersamaan dengan [a-zA-Z0-9]

W Mana-mana perkataan yang tidak terdiri daripada aksara ASCII, bersamaan dengan [^a-zA-Z0-9]

Sebarang ruang putih Unikod

S Mana-mana aksara ruang putih bukan Unikod, ambil perhatian bahawa w dan S adalah berbeza

d Mana-mana nilai ASCII, bersamaan dengan [0-9]

D Mana-mana aksara kecuali nombor ASCII, bersamaan dengan [^0-9]

[b] Ruang belakang literal (kes khas)

3. Ulang (bilangan kali)

? 0 atau 1 kali

1 kali atau lebih

* Sebarang bilangan kali

{n} n kali

{m,n} Minimum m kali, maksimum n kali

{n,} n kali atau lebih

Lalai lalai untuk ungkapan biasa ialah padanan tamak

Seperti [a b ] Jika anda mahu padankan aaabb, ia tidak akan sepadan dengan ab, aab, dsb., ia hanya sepadan dengan aaabb

[a ?b ?] Ini akan sepadan dengan aaab Mengapa terdapat perbezaan ini?

Jawapan: ? Mari buat padanan biasa tidak tamak, maka b hanya akan padankan satu b di sini, jadi mengapa padanan 3? Ini kerana padanan corak ungkapan biasa sentiasa mencari kedudukan padanan pertama yang mungkin dalam rentetan.

4 Pilihan | |. digunakan untuk memisahkan aksara pilihan, seperti [ab|cd], yang boleh memadankan sama ada ab atau cd

Nota:

: Urutan percubaan padanan item yang dipilih adalah kiri → kanan, jadi. [a|ab], apabila a dipadankan, ab tidak akan dipadankan, walaupun ab adalah padanan yang lebih baik () 1. Item individu dianggap sebagai subungkapan /java(script)?/ Boleh memadankan javascript dan java Iaitu, bahagian kurungan membentuk subungkapan, dan anda boleh melakukan | * dan operasi lain pada subungkapan

2. Tentukan sub-corak dalam pola lengkap Yang terakhir boleh merujuk kepada ungkapan yang disertakan dalam kurungan /(['"])[a-z]1/ 1 merujuk kepada ungkapan dalam kurungan pertama, jadi Dipetik [. '"]

3. Rujuk subungkapan sebelumnya di belakang

Nota

: /['"][a-z]['"]/ Ungkapan biasa ini bermaksud petikan tunggal atau petikan berganda ditambah huruf kecil ditambah dengan single sebelumnya petikan atau petikan berganda, dan petikan tunggal dan berganda sebelum dan seterusnya tidak dipadankan. Jika anda mahu padankan, anda boleh menulis seperti ini [(['"])[a-z]1]. Tambah nombor Anda boleh memetik ungkapan dalam kurungan sebelumnya

5. Nyatakan kedudukan yang sepadan (titik utama)

^ Padan dengan permulaan rentetan Dalam pengambilan berbilang baris, sepadan dengan permulaan baris

$ Padan dengan penghujung rentetan Dalam pengambilan berbilang baris, padan dengan penghujung baris

b Padan dengan sempadan perkataan, ringkasnya, ia ialah kedudukan antara aksara w dan W, atau kedudukan antara aksara w dan permulaan atau akhir rentetan

B Memadankan kedudukan sempadan bukan perkataan

(?=p) Penegasan pandangan hadapan lebar sifar memerlukan aksara berikut sepadan dengan p, tetapi tidak boleh memasukkan aksara yang sepadan dengan p

(?!p) Penegasan pandangan negatif lebar sifar memerlukan watak seterusnya tidak sepadan dengan p

6

ditulis di sebelah kanan ungkapan biasa literal //

saya melakukan padanan tidak sensitif huruf besar dan kecil

g melakukan perlawanan global, ringkasnya, ia mencari semua perlawanan dan bukannya berhenti selepas yang pertama ditemui

m Corak padanan berbilang baris, ^ sepadan dengan permulaan baris dan permulaan rentetan, $ padan dengan penghujung baris dan penghujung rentetan /java$/m boleh sepadan dengan javafunc

Nota: Apabila ungkapan biasa adalah global, lastIndex yang ditetapkan pada masa ini akan ditetapkan kepada kedudukan semasa setiap kali exec() dan test() dilaksanakan bermula dari kedudukan lastIndex, jadi sebaiknya tetapkan lastIndex kepada 0 setiap kali ia dilaksanakan.

Saya harap artikel ini akan membantu semua orang dalam pengaturcaraan JavaScript.

Kenyataan:
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