正規表示式是一種對文字字串進行驗證和格式化的極其強大的方式。透過使用正規表示式,可以用一兩行JavaScript程式碼完成原本需要幾十行程式碼的複雜任務。
正規表示式是一種特殊符號編寫的模式,描述一個或多個文字字串,常常被認為是程式設計中最棘手的部分之一,但是只要把混亂的正規表示式分解成有意義的小塊,其文法並不難理解。
以下的例子,是使用正規表示式驗證電子郵件地址:
[html]
input.invalid {
background-color: #FF9;
border: 2px red inset
} val;
font-weight: bold;
}
script01.js
[javascript]
window.onload = initForms;
function initForms() {
for (var i=0; i
}
function validForm() {
var allGood = true;
var allTags = document.getElementsByTagName("*");
for (var i=0; i
}
}
與所有Good;
var allClasses = thisTag.className.split(" ");
for (var j=0; j
}
thisTag.className = outClass;
if (outClass.indexOf("invalid") > -1) {
thisTag.focus();
if (thisTag.nodeName == "INPUT") {
}
返回 false;
function validBasedOnClass(thisClass) {
var classBack =「」;
switch(thisClass) {
case "無效":
; ;
case "email":
預設值:
}
返回 classBack;
}
="color:#ff0000;">var re = /^w+([.-]?w+)*@w+([.-]?w+) *( .w{2,3})+$/;
返回重新測試(電子郵件);
}
if (parentTag.nodeName == "LABEL") {
ParentTag.className += "無效";
現在開始解釋紅色程式碼行:
正規表示式總是以斜線(/)開頭和結尾。
脫字元(^)表示要使用這個表達式檢查以特定的字串開頭的字串。
表達式w表示任意單一字符,包括a~z、A~Z、0~9或底線。
加號+表示要尋找前面條目的一次或多次出現。
前圓括號(表示一個群組。
方括號[]用來表示可以出現其中任意一個字符,這個方括號內包含字符.-,但是點號對於正則表達式是有特殊意義的,所以需要在它前面加上反斜杠,這表示指的實際上是點號本身,而不是它的特殊意義。可以不出現或出現一次。出現或出現多次。此之後同樣是([.-]?w+)*,這表示電子郵件地址的後綴中允許有點號或連字符。 ,表示希望找到一個點號,後面跟著一些字元。這裡結束。數十行的程式碼來完成相同的程式碼
[javascript]
function validEmail(email) {
var invalidChars = " if (email == "") {
return false;
return false;
for (var k=0; k
return false;
var atPos = email.indexOf("@",1);
if (atPos == -1) {
}
if (email.indexOf("@",atPos+1) != -1) {
return false;
;
if (periodPos == -1) {
if (periodPos+3 > email.length) {
return false;
}
return true;
}
LABEL") {
}
由此可見使用正規則表達式確實可以減少大量程式碼。