Ungkapan biasa ...LOGIN

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. Pembina

var reg=new RegExp('<%[^%>]+%>','g');


2. Literal

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)


Metacharacters

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 menegak

Pada 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 RegExp

kaedah 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>

bahagian seterusnya

<!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>
babperisian kursus