1.[] 與 ()的區(qū)別
[a-zA-Z0-9] 在包含的字符中 , 匹配其中一個(gè) , 可匹配 ”!a!”
(abc) 在包含的字符中 , 都要逐一匹配 , 而且有順序 , 其實(shí)就是說 ,() 里面就是一個(gè)字正則式 , 可匹配 ”3abc93”
2. 表達(dá)式之間千萬不能有空格
3.構(gòu)造檢查 email的正則表達(dá)式
??? /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/
在一個(gè)完整的 email 地址中有三個(gè)部分 :
1. 用戶名 ( 在 '@' 左邊的一切 ),
2.'@',
3. 服務(wù)器名 ( 就是剩下那部分 ).
用戶名可以含有大小寫字母阿拉伯?dāng)?shù)字 , 句號 ('.'), 減號 ('-'), and 下劃線 ('_'). 服務(wù)器名字也是符合這個(gè)規(guī)則 , 當(dāng)然下劃線除外 .
現(xiàn)在 , 用戶名的開始和結(jié)束都不能是句點(diǎn) . 服務(wù)器也是這樣 . 還有你不能有兩個(gè)連續(xù)的句點(diǎn)他們之間至少存在一個(gè)字符,好現(xiàn)在我們來看一下怎么為用戶名寫一個(gè)匹配模式 :
??? ?/^[\w-]+$/
現(xiàn)在還不能允許句號的存在 . 我們把它加上 :
/^[\w-]+(\.[\w-]+) * $/
上面的意思就是說 : " 以至少一個(gè)規(guī)范字符(除了 . )開頭 , 后面跟著 0 個(gè)或者多個(gè) 以點(diǎn)開始的字符串 ."
然后是后面一部分 , 在網(wǎng)上流傳的一種做法是 , 后面的一部分是跟前面那部分一樣的 , 但是我覺得有點(diǎn)不妥 , 難道 abc@abc 這樣也符合一個(gè) email 地址格式嗎 ? 我試過不少的系統(tǒng) , 都不允許這樣輸入的 , 必需要你輸入如 abc@abc.abc 這樣的格式才行.所以后面部分是略有不同的.
?? \^[\w-]+(\.[w-]+) + $\
上面的意思就是說 : " 以至少一個(gè)規(guī)范字符(除了 . )開頭 , 后面跟著 1個(gè)或者多個(gè) 以點(diǎn)開始的字符串 ."
好 . 現(xiàn)在只需要用 ”@” 把兩部分連接 :
/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[w-]+)+$/
這就是完整的 email 認(rèn)證匹配模式了 , 在 JS 中只需要調(diào)用
??? reg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[w-]+)+$/;
??? reg.exec(input);
返回為 true, 就是說 input 是一個(gè) email 地址 .?
通過這種方法就可以得到是否為 email 了 !
?
posted @ 2006-12-05 22:24 憶了又憶| 編輯 收藏