1. Gambaran keseluruhan objek RegExp
Objek RegExp mewakili ungkapan biasa RegExp ialah singkatan ungkapan biasa Ia adalah alat yang berkuasa untuk melakukan padanan corak pada rentetan. Objek RegExp digunakan untuk menentukan kandungan yang akan diambil daripada teks. Apabila anda mendapatkan semula beberapa teks, anda menggunakan corak untuk menerangkan perkara yang ingin anda dapatkan semula. RegExp ialah corak ini. Corak ringkas boleh menjadi satu aksara; corak yang lebih kompleks termasuk lebih banyak aksara dan boleh digunakan untuk menghurai, menyemak format, penggantian, dsb.
Ungkapan biasa boleh menentukan kedudukan carian dalam rentetan, jenis aksara yang akan dicari, dsb.
2. Cipta objek RexExp
Mencipta ungkapan biasa adalah serupa dengan mencipta rentetan. Terdapat dua cara untuk mencipta ungkapan biasa:
(1) Sintaks untuk mencipta objek RegExp menggunakan literal:
(2) Sintaks untuk mencipta objek RegExp menggunakan kata kunci baharu:
RegExp(corak, atribut);
Penjelasan parameter:
1 Corak parameter ialah rentetan yang menentukan corak ungkapan biasa atau ungkapan biasa yang lain.
Atribut 2Parameter ialah rentetan corak pilihan, termasuk atribut "g", "i" dan "m", yang digunakan untuk menentukan padanan global, padanan tidak sensitif huruf besar dan kecil dan padanan berbilang baris.
Objek RegExp digunakan untuk menyimpan corak perolehan semula. Cipta objek RegExp melalui kata kunci baharu. Kod berikut mencipta corak bernama objek RegExp, yang coraknya ialah "e". Apabila menggunakan objek RegExp ini untuk mencari dalam rentetan, aksara "e" akan dicari.
Perkara di atas juga boleh dibuat secara literal, yang juga merupakan kaedah yang sering kita gunakan:
<span style="font-size:18px;">var pattern=new RegExp("e"); var pattern=new RegExp("e",gi);//设置全局搜素不区分大小写</span>
<span style="font-size:18px;">var pattern=/e/; var pattern=/e/gi;</span>
(1) sifat objek RegExp
Kami telah melihat contoh asas ini dalam contoh di atas, tetapi mari kita lihat beberapa contoh mudah:
<span style="font-size:18px;">var pattern=/e/gim; document.write(pattern.global+" ");//输出:true。说明设置了全局模式 document.write(pattern.ignoreCase+" ");//输出:true document.write(pattern.multiline+" ");//输出:true document.write(pattern.source+" ");//输出:e</span>
mendapatkan semula nilai yang ditentukan dalam rentetan dan nilai pulangan adalah benar atau palsu. 1) kaedah test()
2)
<span style="font-size:18px;">var pattern=/e/; var str="The best things in life are free"; document.write(pattern.test(str));//输出:true</span>
Contoh:
<span style="font-size:18px;">var pattern=/e/; var str="The best things in life are free"; document.write(pattern.exec(str));//输出:e</span>
1Cari "e" pertama dan simpan kedudukannya.
2Jika anda menjalankan exec() sekali lagi, mulakan semula dari kedudukan yang disimpan, cari "e" seterusnya dan simpan kedudukannya.
<span style="font-size:18px;">var pattern=/e/g; var str="The best things in life are free"; do { var result=pattern.exec(str); document.write(result+" "); } while(result!=null)</span>
<span style="font-size:18px;">var pattern=/e/; var str="The best things in life are free"; document.write(pattern.test(str));//输出:true pattern.compile("d"); document.write(pattern.test(str));//输出:false</span>
Memandangkan ungkapan biasa mempunyai hubungan tertentu dengan objek String, beberapa kaedah objek String boleh digunakan untuk ungkapan biasa:
(4)元字符是拥有特殊含义的字符:
由于这些使用广泛,我们只是举几个例子:
<span style="font-size:18px;">var pattern=/b.ue/;//点符号表示匹配除了换行符以外的任意字符。 var str="blue"; document.write(pattern.test(str));//输出:true</span>
(5)方括号用于查找某个范围的字符:
<span style="font-size:18px;">var pattern=/[a-z]oogle/;//[a-z]表示26个小写字母,任意一个都可以匹配 var str="woogle"; document.write(pattren.test(str));//输出:true</span>
(6)量词
<span style="font-size:18px;">var pattern=/go+gle/;//o*表示匹配至少一个0 var str="google"; document.write(pattren.test(str));//输出:true</span>
四、常用的正则表达式
主要的是看变量patttern模式字符串表示的正则表达式。其余的是一些JS的基本的东西,可以忽略。
(1)检查邮政编码
<span style="font-size:18px;">var pattern=/^[0-9]{6}$/;//必须是6位,并且都是是数字 var str=prompt("请输入邮政编码:"); if(pattern.test(str)) { alert("您输入的是正确的邮政标号!"); } else { alert("您输入的是错误的邮政标号!"); }</span>
输入一些数据运行的结果为:
输入:056500
输入:123
(2)简单电子邮件地址验证
<span style="font-size:18px;">var pattern=/^([\w\.\-]+)@([\w\-]+)\.([a-zA-Z]{2,4})$/; var str=prompt("请输入邮箱名称:"); if(pattern.test(str)) { alert("您输入的是正确的邮箱名称!"); } else { alert("您输入的是错误的邮箱名称!"); }</span>
(3)检查上传文件压缩包
<span style="font-size:18px;">var pattern=/[\w]+\.zip|rar|gz/;//\w表示所有数字和字母以及下划线 var str=prompt("请输入压缩包的名称:"); if(pattern.test(str)) { alert("您输入的是正确的压缩包名称!"); } else { alert("您输入的是错误的压缩包名称!"); }</span>
(4)检查手机号
<span style="font-size:18px;">var pattern=/^[1][0-9]{10}$/; var str=prompt("请输入手机号码:"); if(pattern.test(str)) { alert("您输入的是正确的手机号码!"); } else { alert("您输入的是错误的手机号码!"); }</span>
下面三个输出的结果就不再一一展示,只要写好模式正则表达式就可以检验输入的数据是否正确。由于刚刚接触正则表达式,可能有不正确的地方,自己会进行完善和修正,希望对大家的学习有所帮助。