需求如下:
在用户注册时,需验证用户名必须是有效的手机号码或者是有效的邮箱地址。邮箱:^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
手机:^1[0-9]{10}$我就把把两个正则表达式合并:^1[0-9]{10}|\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
但用这个/^1[0-9]{10}|\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test('11111111111111111111111111111111111111111111111111111111')既然返回true!这是为什么呀?请高手赐教还有就是,邮箱地址能不能限制整个长度不能超过50个字符呢?
在用户注册时,需验证用户名必须是有效的手机号码或者是有效的邮箱地址。邮箱:^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
手机:^1[0-9]{10}$我就把把两个正则表达式合并:^1[0-9]{10}|\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
但用这个/^1[0-9]{10}|\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test('11111111111111111111111111111111111111111111111111111111')既然返回true!这是为什么呀?请高手赐教还有就是,邮箱地址能不能限制整个长度不能超过50个字符呢?
这个可以正则验证之后再用length验证一次
<input type="text" maxlength="50" />
alert(/^(1[0-9]{10}|\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+))*$/.test('11111111111111111111111111111111111111111111111111111111'));
你原来正则表达的意思是以数字开头或者以邮箱结尾,那1111111...就是以数字开头的,肯定返回true,所以加个括号表示这是个整体就可以了