正则表达式笔记
1.[] 与 ()的区别
[a-zA-Z0-9]
在包含的字符中
,
匹配其中一个
,
可匹配
”!a!”
(abc)
在包含的字符中
,
都要逐一匹配
,
而且有顺序
,
其实就是说
,()
里面就是一个字正则式
,
可匹配
”3abc93”
2. 表达式之间千万不能有空格
3 .构造检查 email的正则表达式
/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/
在一个完整的
email
地址中有三个部分
:
1.
用户名
(
在
'@'
左边的一切
),
2.'@',
3.
服务器名
(
就是剩下那部分
).
用户名可以含有大小写字母阿拉伯数字
,
句号
('.'),
减号
('-'), and
下划线
('_').
服务器名字也是符合这个规则
,
当然下划线除外
.
现在
,
用户名的开始和结束都不能是句点
.
服务器也是这样
.
还有你不能有两个连续的句点他们之间至少存在一个字符,好现在我们来看一下怎么为用户名写一个匹配模式
:
/^[\w-]+$/
现在还不能允许句号的存在
.
我们把它加上
:
/^[\w-]+(\.[\w-]+)
*
$/
上面的意思就是说
: "
以至少一个规范字符(除了
.
)开头
,
后面跟着
0
个或者多个
以点开始的字符串
."
然后是后面一部分
,
在网上流传的一种做法是
,
后面的一部分是跟前面那部分一样的
,
但是我觉得有点不妥
,
难道
abc@abc
这样也符合一个
email
地址格式吗
?
我试过不少的系统
,
都不允许这样输入的
,
必需要你输入如
abc@abc.abc
这样的格式才行.所以后面部分是略有不同的.
\^[\w-]+(\.[w-]+)
+
$\
上面的意思就是说
: "
以至少一个规范字符(除了
.
)开头
,
后面跟着
1个或者多个
以点开始的字符串
."
好
.
现在只需要用
”@”
把两部分连接
:
/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[w-]+)+$/
这就是完整的
email
认证匹配模式了
,
在
JS
中只需要调用
reg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[w-]+)+$/;
reg.exec(input);
返回为
true,
就是说
input
是一个
email
地址
.
通过这种方法就可以得到是否为
email
了
,
有什么说得不对的
,
请各位指正
!