正则表达式第二章


1.通过构造函数创建对象
var reg = new RegExp(/^\d{5}$/)
var str = '我的电话是10086';
//调用方法验证字符串是否匹配
var flag = reg.test(str);
console.log(flag);// false
2.通过字面量方式创建对象
var reg = /\d{1,5}/;
var flag = reg.test('我的幸运数字:888');//本身是有返回值的
console.log(flag);//打印的是true

识别正则表达式是否匹配
console.log(/[a-zA-Z]+/.test('hello'));//打印true
console.log(/./.test('你好'));//true
console.log(/.*/.test('1个过个人'));//true
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181030105147709.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,
text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjM1NTg3MQ==,size_16,color_FFFFFF,t_70)

console.log(/[a-z]{2,3}/.test('adsds'));//代表的是匹配出现小写字母两个到三个的字母 true

//验证密码的强弱
密码:数字,字母,特殊符号
密码只有数字---1级  两两组合:数字和字母,数字和特殊符号 ,字母和特殊符号 ---2级
三者都有:数字字母特殊符号---3//获取文本框注册抬起事件
var pwd = document.getElementById('pwd');
var stre = document.getElementById('strnegthLevel');
pwd.onkeyup = function(){
	if(this.value.length>=6){
		var lvl = getLvl(this.value); //获得文本框输入的值
		if(lvl ===1){
			stre.className = 'strengthLv1';
		}else if(lvl ===2){
			stre.className = 'strengthLv2';
		}else if(lvl ===3){
			stre.className = 'strengthLv3';
		}else{
			stre.className = 'strengthLv0';
		}
	}else{
		stre.className = 'strengthLv0';
	}
	//每次键盘抬起获取文本框的内容,验证文本框的东西,得到一个级别,然后对应下面的div颜色
	
	
}
//第三种写法

//第二种写法
pwd.onkeyup = function(){
	$('stren').className = 'strenLv'+(this.value.length>=6?getLvl(this.value):0)
}

//给我密码,返回级别
function getLvl(pwd){
var lvl = 0;
//密码当中有没有数字
	if(/\d/.test(pwd)){
		lvl++;
	}
	//判断是否有字母
	if(/[a-zA-Z]/.test(pwd)){
		lvl++;
	}
	//判断是否有特殊符号
	if(/[\W]/.test(pwd)){
		lvl++;
	}
	return lvl;//1-3
}

//案例,验证用户输入是否是邮箱地址
<script>
	//如果输入的是邮箱,那么背景色为绿色,否则为红色
	//获取文本框,注册失去焦点事件
	var email = document.getElementById('email');
	email.onblur = function(){
		//判断的输入的是否是邮箱
		var reg = /^[0-9a-zA-Z_.-]+[@][0-9a-zA-Z_.-]+([.][a-zA-Z]+){1,2}$/ //严格模式,必须是邮箱格式
		if(reg.test(this.value)){
			this.style.backgroundColor = 'green';
		}else{
			this.style.backgroundColor = 'red';
		}
	}
</script>

猜你喜欢

转载自blog.csdn.net/weixin_42355871/article/details/83539970