一、正则表达式实例
1. 用户名验证
注册时,要求用户名:
1)长度4~10位
2)不能是纯数字
3)不能是纯字母
4)不能有特殊符号
5)不能以数字开头
<script>
var username = 'S2DS';
var r = /(?!^[a-zA-Z]+$)^[a-zA-Z][a-zA-Z0-9]{3,9}$/g;
console.log(r.test(username)); //=> true
</script>
2. 密码验证
<script>
var psw = 'jian_er*1234+';
if(/^[0-9a-zA-Z\W/\_]{6,}$/g.test(psw)){
if(/(^\d+$)|(^[a-z]+$)|(^[A-Z]+$)/g.test(psw)){
//其他操作
alert('密码强度较弱');
}else if(/(^[a-z0-9]+$)|(^[A-Z0-9]+$)|(^[a-zA-Z]+$)/g.test(psw)){
//其他操作
alert('密码强度中等');
}else{
alert('密码强度较强');
}
}else{
alert('请使用大于6位的数字字母组合');
}
</script>
输出结果:
3. 手机号码验证
注册时,要求输入手机号码:
1)11位
2)纯数字
3)1开头
4)符合运营商号码开头
<script>
var str = '15018463492';
var r = /^1(56|58|59|50|36)\d{8}$/g; //表示11位数字整体符合运营商号码开头,以1开头,纯属字。
var result = r.test(str);
console.log(result); //=> true
</script>
4. 邮箱验证
/*
新浪邮箱要求:
4~16个字符,
使用小写字母、数字、下划线组成
下划线不能在首尾
*/
var email = 'as_d222222222222';
var r = /^[a-z0-9][a-z0-9_]{2,14}[a-z0-9]$/g;
console.log(r.test(email));
/* 验证一般邮箱格式 */
/**
*要求:
*1,@ 前6-14位数字与字母的组合,允许有符号比如 . - 等合法符号至多2个,@前一位不能是符号
*2,@ 后直接跟.com,也可以163.com,也可以163.com.cn
*/
/* 正则表达式 */
var email = '1131260587@qq.com';
var r = /^[\w.-]+@[A-Za-z0-9]+(\.[a-z]+)+$/g;
//var r = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; //tp中内置的通用邮箱验证格式
console.log(r.test(email));
5. 总结表单验证
实际上就是上述验证的结合:
<form name="f" action="XXX.html" method="post">
用户名:<input type="text" name="username"><br>
密 码:<input type="text" name="pwd"><br>
手机号:<input type="text" name="tel"><br>
邮 箱:<input type="text" name="email"><br>
<input type="submit" value="提交">
</form>
window.onload = function(){
var f = document.f; //0级DOM
f.onsubmit = function(){
//用户名验证
if(!/(?!^[a-zA-Z]+$)^[a-zA-Z][a-zA-Z0-9]{3,9}$/g.test(f.username.value)){
alert('用户名格式不正确,请重新修改用户名');
f.username.focus(); //光标定位到输入框内
return false; //阻止表单提交
}
//验证密码
if(/^[0-9a-zA-Z\W/\_]{6,}$/g.test(f.pwd.value)){
if(/(^\d+$)|(^[a-z]+$)|(^[A-Z]+$)/g.test(f.pwd.value)){
//其他操作
alert('密码强度较弱');
return false;
}else if(/(^[a-z0-9]+$)|(^[A-Z0-9]+$)|(^[a-zA-Z]+$)/g.test(f.pwd.value)){
//其他操作
alert('密码强度中等');
return false;
}else{
alert('密码强度较强');
//出去
}
}else{
alert('请使用大于6位的数字字母组合');
return false;
}
//验证手机
if(!/^1(56|58|59|50|36)\d{8}$/g.test(f.tel.value)){
alert('手机格式不正确,请重新输入手机号');
f.tel.focus();
return false;
}
//验证邮箱
if(!/^[\w.-]+@[A-Za-z0-9]+(\.[a-z]+)+$/g.test(f.email.value)){
alert('邮箱格式不正确,请重新输入邮箱');
f.email.focus();
return false;
}
}
}