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中文网(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中文网(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中文网(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中文网(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 | 执行对大小写不敏感的匹配。 |
g | 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 |
m | 执行多行匹配。 |
Corak ungkapan biasa
Kurungan segi empat sama digunakan untuk mencari aksara dalam julat tertentu:
表达式 | 描述 |
---|---|
[abc] | 查找方括号之间的任何字符。 |
[0-9] | 查找任何从 0 至 9 的数字。 |
(x|y) | 查找任何以 | 分隔的选项。 |
elemen Watak ialah watak dengan makna istimewa:
元字符 | 描述 |
---|---|
d | 查找数字。 |
s | 查找空白字符。 |
b | 匹配单词边界。 |
uxxxx | 查找以十六进制数 xxxx 规定的 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中文网(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中文网(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