Posted on 2006-12-05 22:24
忆了又忆 阅读(216)
评论(0) 编辑 收藏 所属分类:
Java
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 了 !