正则表达式(电话号码、邮箱、身份证号码)

1.正则表达式?
用于文本中搜索、匹配或替换特定形式的文本
2.表达式的格式
/‘正则表达式字符串’/gim

在这里插入图片描述
3.元字符

元字符 功能
\d 匹配一个数字
\D 匹配一个非数字
\w 匹配一个数字/字母/下划线
\W 匹配一个非数字/字母/下划线
\s 匹配一个空白符
\S 匹配一个非空白符
. 匹配一个除回车,换行外的任何单个字符

4.使用一下^和$

var reg = /ipad/;//包含ipad
var str = 'apple ipad is cool';
console.log(reg.test(str));
// true 

var reg = /ipad/;//包含ipad
var str = 'apple Ipad is cool';
console.log(reg.test(str));
// false 

var reg = /ipad/ig;//包含ipad,全局匹配,不区分大小写
var str = 'apple Ipad is cool';
console.log(reg.test(str));
// true 

var reg = /^ipad/ig;//以ipad开头,全局匹配,不区分大小写
var str = 'apple Ipad is cool';
console.log(reg.test(str));
// false

var reg = /ipad$/ig;//以ipad结束,全局匹配,不区分大小写
var str = 'apple Ipad is cool';
console.log(reg.test(str));
// false 

var reg = /ipad\$/ig;//包含ipad$,全局匹配,不区分大小写
var str = 'apple Ipad$$$$ is$ cool';
console.log(reg.test(str));
// true

5.验证手机号的正则
/^1[3|4|5|6|7|8|9]{1}[0-9]{9}/
分析:
手机号的特点:纯数字、1开头、共11位、判断哪家运营商(电信、移动、联通)
需求:通过页面输入框输入售价好,点击提交进行分部判断

<!--html-->
电话号码:<input type="text" id="number" placeholder="请输入您的电话...">
<button onclick="num()">提交</button>
//js
var number=document.getElementById("number");
var reg3=/^1[3|4|5|6|7|8|9]{1}[0-9]{9}/;
var reg4=/^1([33]|[49]|[53]|[73]|[77]|[80]|[89]|[99]){1}[0-9]{8}/;
var reg5=/^1([30]|[31]|[32]|[45]|[55]|[56]|[66]|[71]|[75]|[76]|[85]|[86]){1}[0-9]{8}/;
var reg6=/^1[^1|2]{1}[0-9]{9}/;
function num(){
    
    
	var i=reg3.test(number.value);
	if(i){
    
    
		if(reg4.test(number.value)){
    
    
			alert("是电信号码");
		}else if(reg5.test(number.value)){
    
    
			alert("是联通号码");
		}else if(reg6.test(number.value)){
    
    
			alert("是移动号码");
		}else{
    
    
			alert("啥都不是");
		}
	}else{
    
    
		alert('请输入正确的手机号');
		clear();
	}
}
function clear(){
    
    
	document.getElementById("number").value='';
}

在这里插入图片描述

6.邮箱正则
/^ [A-Za-z0-9]+([_\ .][A-Za-z0-9]+)*@([A-Za-z0-9\ -]+\ .)+[A-Za-z]{2,6}$/

^ [A-Za-z0-9]+([_\ .][A-Za-z0-9]+) @ ([A-Za-z0-9\ -]+\ .) [A-Za-z]{2,6}
开头由大小字母、数字-、.组成 转义字符@ 大小字母、数字、-、加上. 字符结尾长度2-6字母
<!--html-->
邮箱:<input type="text" id="number" placeholder="请输入您的邮箱..." onclick="num()">
<span id="span_o" style="display: none;color: lawngreen;">√邮箱符合</span>
<span id='span_n' style="display: none;color: #FF0000;">ⓧ邮箱不正确</span>
//js
<script type="text/javascript">
	var number=document.getElementById("number");
	var span_o=document.getElementById("span_o");
	var span_n=document.getElementById("span_n");
	var demo=/^[A-Za-z0-9]+([_\.][A-Za-z0-9]+)*@([A-Za-z0-9\-]+\.)+[A-Za-z]{2,6}$/;
	function num(){
    
    
		if(demo.test(number.value)){
    
    
			span_o.style.display='block';
		}else{
    
    
			span_n.style.display='block';
		}
	}
</script>

在这里插入图片描述
7.身份证号码的正则
/^ [1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;

<!--html-->
身份证号:<input type="text" id="number" placeholder="请输入您的身份证号码..." onclick="num()">
<span id="span_o" style="display: none;color: lawngreen;">√符合</span>
<span id='span_n' style="display: none;color: #FF0000;">ⓧ不正确</span>
var number=document.getElementById("number");
var span_o=document.getElementById("span_o");
var span_n=document.getElementById("span_n");
var demo= /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;;
function num(){
    
    
	if(demo.test(number.value)){
    
    
		span_o.style.display='block';
	}else{
    
    
		span_n.style.display='block';
	}
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/isfor_you/article/details/110425028
今日推荐