正则表达式验证手机号码+定义格式

本文介绍如何利用正则表达式限制数据输入,特别是验证手机号码的正确性。通过设置不同的正则表达式,可以实现对手机号码格式的校验,包括常见的'xxx-xxxx-xxxx'和'xxx xxxx xxxx'格式。同时,文中提供了JavaScript代码示例,展示了如何在HTML输入框中应用这些验证规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

撰写时间:2019年07月06日
用正则表达式限制数据的输入,用以减少错误数据的输入,或者减少因为输入数据类型的不对应导致后期代码的出错。
例子:验证手机号码
每个运营商都发行了各自的手机号段,目前中国移动现在拥有23个号段,中国联通拥有16个号段,中国电信拥有13个号段
在这里插入图片描述
验证手机号码是否真实,就通过正则表达式验证手机号段
需要达到的效果:
存在的号段正常显示:
在这里插入图片描述
乱填不存在的号段显示提示:
在这里插入图片描述
HTML:

<label class="name">手机号码:</label>
<input type="text" id="MobilePhone" name="MobilePhone" maxlength="13" onkeyup="jointPhone(this.value)" onblur="verifyPhone(this.value)" />

JS:

<script src="${ctx}/content/layer/layer.js"></script>

键抬起时事件:οnkeyup=“jointPhone(this.value)”
这个方法包含:限制除了数字跟字符‘-’的输入,拼接自定义号码格式xxx-xxxx-xxxx

 //-------------------- 拼接手机 -------------------
function jointPhone(value){
	var theinput=value;
	var p2=/[^0-9\-]/g
	if(p2.test(theinput)==true) {		
		document.getElementById("MobilePhone").value="";
	}else{
		var arr = theinput.split('');
		if (arr.length >= 4&&arr[3]!="-") {
	   		arr.splice(3, 0, '-');
	    }
	    if (arr.length >= 9&&arr[8]!="-") {
	      	arr.splice(8, 0, '-');
	    }	    		
    	var input= arr.join('');	    									
    	document.getElementById("MobilePhone").value=input;
	}
}

输入框限制了最大长度maxlength=“13”,手机号码是十一位,因为拼接了“-”所以这里设置了十三位。
失去焦点触发事件:οnblur=“verifyPhone(this.value)”
正则表达式验证各个运营商已发行的号段

//-------------------- 手机验证 -------------------
function verifyPhone(value){
	var phone=value;
	var p1=/^(13[0-9]|14[56789]|15[0-3,5-9]|166|17[0135678]|18[0-9]|19[89])\-\d{4}\-\d{4}$/;
    if(p1.test(value)==false){
    	layer.tips('请输入有效号码', '#MobilePhone');
    }
}

如果需要其他格式例如空格:177 8894 3934
验证输入的电话号码格式xxx xxxx xxxx 或xxx-xxxx-xxxx
改一下拼接的字符为:””
验证号码正则两个格式如下:

空:/^(13[0-9]|14[56789]|15[0-3,5-9]|166|17[0135678]|18[0-9]|19[89])\s\d{4}\s\d{4}$/
-:/^(13[0-9]|14[56789]|15[0-3,5-9]|166|17[0135678]|18[0-9]|19[89])\-\d{4}\-\d{4}$/

限制输入字符正则表达式如下:
验证只能输入数字跟空格 或数字跟“-”

空格:/[^0-9\s]/g 或 /[^\d\s]/g    
符号“-”:/[^0-9\-]/g 或 /[^\d\-]/g

正则表达式加上参数g之后,表明可以进行全局匹配,注意这里“可以”的含义。
1)对于表达式对象的exec方法,不加入g,则只返回第一个匹配,无论执行多少次均是如此,如果加入g,则第一次执行也返回第一个匹配,再执行返回第二个匹配,依次类推
^:开始位置
&:结束位置
[^]:放入中括号就是非或者排除的意思

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值