Ungkapan biasa JavaScript
Sintaks
Definisi
Terdapat dua cara untuk mentakrifkan ungkapan biasa dalam JavaScript. Tentukan rentetan yang sepadan dengan rentetan yang serupa dengan <%XXX%>
1. Pembinavar reg=new RegExp('<%[^%>]+%>','g');
var reg=/<%[^%>]%>/g;
g: global, carian teks penuh, carian lalai adalah untuk dihentikan selepas hasil pertama
i: huruf besar dalam, abaikan huruf besar, sensitif huruf lalai
m: berbilang baris, carian Baris berbilang (tukar makna ^ dan $ supaya ia sepadan pada awal dan akhir baris masing-masing pada mana-mana baris, bukan hanya pada permulaan dan akhir keseluruhan rentetan)
Ekspresi biasa yang menakutkan. ungkapan Tidak banyak watak istimewa dengan makna istimewa dalam ungkapan yang boleh digunakan untuk menentukan watak utama mereka)
metakarakter: ( [ { ^ $ | ) ? * + .
Bukan setiap Setiap metacharacter mempunyai makna khusus tersendiri. Metacharacter mempunyai makna yang berbeza dalam kombinasi yang berbeza Lihat pada klasifikasi
aksara khas yang dipratakrifkan
aksara yang bermaksud
karakter Tab tahap t <. 🎜>
r Carriage return character n Line feed character f Bentuk suapan aksara cX Control character sepadan dengan X (Ctrl+X) v Aksara tab menegakPada prinsipnya, satu watak biasa sepadan dengan satu watak Kita boleh melampirkannya dengan [], supaya keseluruhan [] sepadan dengan satu aksara. Seperti
alert(/ruby/.test("ruby"));//true
amaran ( /[abc]/.test("a"));//true
alert(/[abc]/.test("b"));//true
alert(/[abc]/.test("c"));//true
alert("kelawar ,sebuah Kucing , kelawar gemuk ,kucing gemuk".match(/[bcf]at/gi));//bat,Cat,fAt,bat,faT,cat
Kelas negatif
juga dibuat dalam kurungan. Tambahkan metacharacter di hadapan untuk menafikannya, menunjukkan bahawa padanan tidak boleh menjadi aksara dalam kurungan. .
aberitahu(/[^abc]/.test("a"));//false
alert(/[^abc]/.test("b"));//false
alert(/[^abc]/.test("6")); //true
alert(/[^abc]/.test("gg"));//true
Kelas skop
Masih membuat kekecohan di dalam kurungan empat segi. Kadang-kadang terdapat terlalu banyak perkara yang sepadan, dan jenisnya adalah sama, dan terlalu menyusahkan untuk memasukkan kesemuanya. Cirinya ialah garis mendatar ditambah di tengah.
Kelas gabungan
Masih membuat kekecohan dalam kurungan empat segi. Membenarkan memadankan pelbagai jenis aksara tunggal menggunakan kurungan segi empat sama.
alert(/[a-f]/.test("b"));//true
amaran (/[a-f]/.test("k"));//false
alert(/[a-z]/.test("h"));//true
alert(/[A-Z]/.test("gg"));//false
alert(/[^H-Y]/ .test("G"));//true
alert(/[0-9]/.test("8"));//true
alert(/[^7-9]/.test("6"));//true
alert(/[a- m1-5n]/.test("a"))//true
alert(/[a-m1-5n]/.test("3")) //true
alert(/[a-m1-5n]/.test(a))//true
alert(/[a-m1-5n]/.test("r"))//false
pra Kelas definisi
aksara bersamaan dengan penerangan
. [ ^nr] Sebarang aksara kecuali suapan baris dan pemulangan pengangkutan
d [0-9] Aksara angka
D [^0-9] Aksara bukan angka
s [tnx0Bfr] Aksara kosong
S [^ tnx0Bfr] Aksara bukan kosong
w [a-zA-Z_0-9] Aksara perkataan (semua huruf)
W [^a-zA-Z_0-9] Aksara bukan perkataan
alert(/d/.test("3"))//true
alert(/d/.test("w"))/ /false
alert(/D/.test("w"))//true
alert(/w/.test( "w"))//true
alert(/w/.test("SI"))//false
alert( /W/.test("perantis"))//true
alert(/s/.test(" "))//true
alert(/S/.test(" "))//false
alert(/S/.test("positif"))//true
alert(/./.test("美"))//true
alert(/./.test(" "))// benar
amaran(/./.test(a))//true
Kaedah objek Rentetan yang menyokong ungkapan biasa
1. search( ) kaedah;
Kaedah ini digunakan untuk mendapatkan semula subrentetan tertentu dalam rentetan, atau untuk mendapatkan semula rentetan yang sepadan dengan ungkapan biasa.
Sintaks asas: stringObject.search(regexp);
@param Parameter regexp boleh menjadi rentetan yang perlu diambil dalam stringObject, atau ia boleh menjadi objek RegExp yang perlu diambil semula.
@return (nilai pulangan) Kedudukan permulaan subrentetan pertama dalam stringObject yang sepadan dengan objek regexp. Jika tiada subrentetan yang sepadan ditemui, -1 dikembalikan;
Nota: Kaedah carian() tidak melakukan pemadanan global, ia akan mengabaikan bendera g, dan ia tidak mempunyai atribut lastIndex bagi objek regexp , dan sentiasa Ia mencari dari permulaan rentetan, dan sentiasa mengembalikan kedudukan pertama yang dipadankan dengan stringObject.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <button onclick="myFunction()">点击</button> <p id="demo"></p> <script> function myFunction() { var str = "Visit W3cSchool!"; var n = str.search(/3c/i); document.getElementById("demo").innerHTML = n; } </script> </body> </html>
2 kaedah padanan(); Padanan ungkapan biasa. Kaedah ini serupa dengan indexOf() atau lastIndexOf(); tetapi ia mengembalikan nilai yang ditentukan, bukan kedudukan rentetan Sintaks asas:
stringObject.match(searchValue) atau stringObject; .match(regexp)
@param (parameter)
searchValue perlu mendapatkan semula nilai rentetan
regexp: objek RegExp yang perlu sepadan dengan corak;
@return(nilai pulangan) menyimpan tatasusunan padanan yang berjaya; ia boleh memadankan corak secara global. Jika tiada padanan ditemui, maka ia akan mengembalikan tatasusunan yang dikembalikan mempunyai tiga elemen, elemen pertama menyimpan teks yang sepadan, dan terdapat dua atribut objek menunjukkan teks yang sepadan Kedudukan aksara permulaan dalam stringObject; atribut input mengisytiharkan rujukan kepada objek stringObject;
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <button onclick="myFunction()">点击</button> <p id="demo"></p> <script> function myFunction() { var str = "hello world"; var n = str.match("world"); document.getElementById("demo").innerHTML = n; } </script> </body> </html>
3. kaedah replace():
Kaedah ini digunakan untuk menggantikan beberapa aksara dengan aksara lain dalam rentetan, atau menggantikan subrentetan yang sepadan dengan ungkapan biasa; @param (parameter)
regexp/substr; String atau objek RegExp yang perlu diganti. penggantian: nilai rentetan, teks yang akan diganti atau fungsi yang menjana teks gantian. @return (nilai pulangan) Mengembalikan rentetan baharu selepas penggantian Nota: Kaedah replace() stringObject rentetan melakukan operasi carian dan ganti. Terdapat dua mod penggantian. boleh menjadi sama ada rentetan atau corak padanan biasa Jika ia adalah corak padanan biasa, maka ia boleh ditambah dengan pengubah suai g, yang mewakili penggantian global Jika tidak, ia hanya akan menggantikan rentetan padanan pertama 🎜>Kaedah objek RegExpkaedah test(): Kaedah ini digunakan untuk mengesan sama ada rentetan sepadan dengan corak tertentu
Sintaks asas: RegExpObject.test(str@param (parameter) str ialah rentetan yang perlu dikesan
@return (nilai pulangan) Jika rentetan str mengandungi teks yang sepadan dengan RegExpObject, kembalikan benar, jika tidak, kembalikan salah;Kaedah ini digunakan untuk mendapatkan semula padanan ungkapan biasa dalam rentetan.
Sintaks asas: RegExpObject.exec(string)
@param (parameter): rentetan [diperlukan] Rentetan untuk diambil semula.
@return (nilai pulangan): Mengembalikan tatasusunan untuk menyimpan hasil yang sepadan, nilai pulangan adalah batal
Nota: Elemen pertama tatasusunan yang dikembalikan ialah teks yang sepadan dengan ungkapan biasa Kaedah ini juga mengembalikan dua atribut Atribut indeks mengisytiharkan kedudukan aksara pertama teks yang sepadan menyimpan rentetan rentetan yang diperolehi sama seperti tatasusunan yang dikembalikan oleh kaedah padanan(). <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<button onclick="myFunction()">点我</button>
<p id="demo">请访问网站</p>
<script>
function myFunction() {
var str = document.getElementById("demo").innerHTML;
var txt = str.replace("网站","php.cn");
document.getElementById("demo").innerHTML = txt;
}
</script>
</body>
</html>