Ungkapan biasa JavaScript



Ungkapan Biasa (Bahasa Inggeris: Regular Expression, selalunya 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.

Tatabahasa

/corak/pengubah suai;

Contoh:

var patt = /php/i

Contoh analisis:

/php/i ialah ungkapan biasa.

php ialah corak (digunakan 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: search() dan replace().

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

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>

<p>搜索字符串 "php", 并显示匹配的起始位置:</p>
<button onclick="myFunction()">点我</button>
<p id="demo"></p>
<script>
function myFunction() {
    var str = "Visit php!"; 
    var n = str.search(/php/i);
    document.getElementById("demo").innerHTML = n;
}
</script>

</body>
</html>

Jalankan instance»

Klik butang "Jalankan Contoh" untuk melihat tika dalam talian


Kaedah carian() menggunakan rentetan

Kaedah carian boleh menggunakan rentetan sebagai parameter. Argumen rentetan ditukar kepada ungkapan biasa:

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>

<p>搜索字符串 "php", 并显示匹配的起始位置:</p>
<button onclick="myFunction()">点我</button>
<p id="demo"></p>
<script>
function myFunction() {
    var str = "Visit php!"; 
    var n = str.search("php");
    document.getElementById("demo").innerHTML = n;
}
</script>

</body>
</html>

Run Instance»

Klik Butang "Run Instance" untuk lihat contoh dalam talian



kaedah replace() menggunakan ungkapan biasa

Instance

rreee

Jalankan contoh»

Klik butang "Jalankan contoh" untuk melihat contoh dalam talian


kaedah ganti() String penggunaan

Kaedah replace() akan menerima rentetan sebagai parameter:

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php</title>
</head>
<body>

<p>替换 "microsoft" 为 php" :</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");
    document.getElementById("demo").innerHTML = txt;
}
</script>

</body>
</html>

Instance yang sedang berjalan»

Klik butang "Jalankan Instance" untuk melihat contoh dalam talian


Perasan tak?


NoteParameter ungkapan biasa boleh digunakan dalam kaedah di atas (menggantikan parameter rentetan) .
Note正则表达式参数可用在以上方法中 (替代字符串参数)。
正则表达式使得搜索功能更加强大(如实例中不区分大小写)。
Ekspresi biasa menjadikan fungsi carian lebih berkuasa (seperti ketidakpekaan huruf besar-besaran dalam contoh).



Pengubah suai ungkapan biasa

Pengubah suai Boleh jadi -tidak sensitif dalam carian global:

修饰符描述
i执行对大小写不敏感的匹配。
g执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m执行多行匹配。



Corak ungkapan biasa

Tanda kurung segi empat sama digunakan untuk mencari dalam julat tertentu Aksara:

表达式描述
[abc]查找方括号之间的任何字符。
[0-9]查找任何从 0 至 9 的数字。
(x|y)查找任何以 | 分隔的选项。

Metacharacter ialah aksara dengan makna istimewa:

元字符描述
d查找数字。
s查找空白字符。
b匹配单词边界。
uxxxx查找以十六进制数 xxxx 规定的 Unicode 字符。

Kuantifier:

量词描述
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:

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>

<p>替换 "Microsoft" 为 "php" :</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");
    document.getElementById("demo").innerHTML = txt;
}
</script>

</body>
</html>

Run Contoh »

Klik butang "Jalankan Contoh" untuk melihat tika dalam talian


Gunakan exec()

Kaedah exec() adalah biasa kaedah ungkapan. 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:

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>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>

Run Contoh »

Klik butang "Jalankan Contoh" untuk melihat contoh dalam talian


Manual Rujukan RegExp Lengkap

Untuk Manual Rujukan Objek RegExp yang lengkap, sila rujuk manual Rujukan RegExp JavaScript kami.

Manual rujukan ini mengandungi semua kaedah dan sifat objek RegExp.