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