Ungkapan biasa JavaScript
Ungkapan Biasa (Bahasa Inggeris: Ungkapan Biasa, sering disingkat sebagai regex, regexp atau RE dalam kod) menggunakan rentetan tunggal untuk menerangkan dan memadankan satu siri pola carian rentetan yang mematuhi peraturan sintaksis tertentu.
Mod carian boleh digunakan untuk carian teks dan penggantian teks.
Apakah ungkapan biasa?
Ungkapan biasa ialah corak carian yang dibentuk oleh jujukan aksara.
Apabila anda mencari data dalam teks, anda boleh menggunakan corak carian untuk menerangkan perkara yang ingin anda tanyakan.
Ungkapan biasa boleh menjadi aksara ringkas atau corak yang lebih kompleks.
Ekspresi biasa boleh digunakan untuk semua carian teks dan operasi penggantian teks.
Sintaks
/corak/pengubah suai;
Contoh:
var patt = /phpl/i
Contoh analisis:
/php/i ialah ungkapan biasa.
php ialah corak (untuk mendapatkan semula).
i ialah pengubah suai (carian tidak sensitif huruf besar-besaran).
Menggunakan kaedah rentetan
Dalam JavaScript, ungkapan biasa biasanya digunakan dengan dua kaedah rentetan: carian () dan gantikan ().
kaedah search() digunakan untuk mendapatkan semula subrentetan tertentu dalam rentetan atau mendapatkan semula subrentetan yang sepadan dengan ungkapan biasa dan mengembalikan kedudukan permulaan subrentetan itu. Kaedah
replace() digunakan untuk menggantikan beberapa aksara dengan aksara lain dalam rentetan atau menggantikan subrentetan yang sepadan dengan ungkapan biasa.
kaedah carian() menggunakan ungkapan biasa
contoh
Gunakan ungkapan biasa untuk mencari rentetan "php.cn", tidak peka huruf besar-kecil:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文網(wǎng)(php.cn)</title> </head> <body> <p>搜索字符串 "php.cn", 并顯示匹配的起始位置:</p> <button onclick="myFunction()">點我</button> <p id="demo"></p> <script> function myFunction() { var str = "Visit php.cn!"; var n = str.search(/php.cn/i); document.getElementById("demo").innerHTML = n; } </script> </body> </html>
Jalankan atur cara dan cuba
carian ( ) kaedah menggunakan rentetan
Kaedah carian boleh mengambil rentetan sebagai parameter. Parameter rentetan akan ditukar kepada ungkapan biasa:
Contoh
Dapatkan subrentetan "php.cn" dalam rentetan:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文網(wǎng)(php.cn)</title> </head> <body> <p>搜索字符串 "php.cn", 并顯示匹配的起始位置:</p> <button onclick="myFunction()">點我</button> <p id="demo"></p> <script> function myFunction() { var str = "Visit php.cn!"; var n = str.search("php.cn"); document.getElementById("demo").innerHTML = n; } </script> </body> </html>
Jalankan program dan cuba
kaedah replace() menggunakan ungkapan biasa
Contoh
Gunakan ungkapan biasa dan ketakpekaan huruf besar untuk menggantikan Microsoft dalam rentetan dengan php.cn:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文網(wǎng)(php.cn)</title> </head> <body> <p>替換 "microsoft" 為 "php.cn" :</p> <button onclick="myFunction()">點我</button> <p id="demo">請訪問 Microsoft!</p> <script> function myFunction() { var str = document.getElementById("demo").innerHTML; var txt = str.replace(/microsoft/i,"php.cn"); document.getElementById("demo").innerHTML = txt; } </script> </body> </html>
Jalankan atur cara untuk mencubanya
kaedah replace() menggunakan rentetan
kaedah replace() akan menerima rentetan sebagai parameter:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文網(wǎng)(php.cn)</title> </head> <body> <p>替換 "Microsoft" 為 "php.cn" :</p> <button onclick="myFunction()">點我</button> <p id="demo">請訪問 Microsoft!</p> <script> function myFunction() { var str = document.getElementById("demo").innerHTML; var txt = str.replace("Microsoft","php.cn"); document.getElementById("demo").innerHTML = txt; } </script> </body> </html>
Jalankan atur cara untuk mencuba
Petua:
Parameter ungkapan biasa boleh digunakan dalam kaedah di atas (bukannya parameter rentetan).
Ekspresi biasa menjadikan fungsi carian lebih berkuasa (seperti ketidakpekaan huruf besar-besaran dalam contoh).
Pengubah suai ungkapan biasa
pengubah boleh menjadi tidak peka huruf besar-kecil dalam carian global:
修飾符 | 描述 |
---|---|
i | 執(zhí)行對大小寫不敏感的匹配。 |
g | 執(zhí)行全局匹配(查找所有匹配而非在找到第一個匹配后停止)。 |
m | 執(zhí)行多行匹配。 |
Corak ungkapan biasa
Kurungan segi empat sama digunakan untuk mencari aksara dalam julat tertentu:
表達式 | 描述 |
---|---|
[abc] | 查找方括號之間的任何字符。 |
[0-9] | 查找任何從 0 至 9 的數(shù)字。 |
(x|y) | 查找任何以 | 分隔的選項。 |
elemen Watak ialah watak dengan makna istimewa:
元字符 | 描述 |
---|---|
d | 查找數(shù)字。 |
s | 查找空白字符。 |
b | 匹配單詞邊界。 |
uxxxx | 查找以十六進制數(shù) xxxx 規(guī)定的 Unicode 字符。 |
Kuantiti:
量詞 | 描述 |
---|---|
n+ | 匹配任何包含至少一個 n 的字符串。 |
n* | 匹配任何包含零個或多個 n 的字符串。 |
n? | 匹配任何包含零個或一個 n 的字符串。 |
Menggunakan Objek RegExp
Dalam JavaScript, objek RegExp ialah objek ungkapan biasa dengan sifat dan kaedah yang telah ditetapkan.
Gunakan test()
Kaedah test() ialah kaedah ungkapan biasa.
Kaedah test() digunakan untuk mengesan sama ada rentetan sepadan dengan corak tertentu Jika rentetan mengandungi teks yang sepadan, ia mengembalikan benar, jika tidak ia mengembalikan palsu.
Contoh berikut digunakan untuk mencari aksara "e" dalam rentetan:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文網(wǎng)(php.cn)</title> </head> <body> <script> var patt1=new RegExp("e"); document.write(patt1.test("The best things in life are free")); </script> </body> </html>
Jalankan atur cara dan cuba
Anda boleh melakukan perkara di atas tanpa menetapkan pembolehubah ungkapan biasa Dua baris kod boleh digabungkan menjadi satu:
/e/.test("Perkara terbaik dalam hidup adalah percuma!")
Gunakan exec()
Kaedah exec() ialah kaedah ungkapan biasa. Kaedah
exec() digunakan untuk mendapatkan padanan ungkapan biasa dalam rentetan.
Fungsi ini mengembalikan tatasusunan, yang menyimpan hasil yang sepadan. Jika tiada padanan ditemui, nilai pulangan adalah batal.
Contoh berikut digunakan untuk mencari huruf "e" dalam rentetan:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文網(wǎng)(php.cn)</title> </head> <body> <script> var patt1=new RegExp("e"); document.write(patt1.exec("The best things in life are free")); </script> </body> </html>
Jalankan atur cara untuk mencubanya