前端点滴(JS核心)(四)---- 正则表达式(下)

一、正则表达式实例

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;
	}
	}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值