收藏js电话 手机号码验证正则做法

今天在自己开发时突然要用到js电话号码或手机号码验证,我百度了下,找到了二个比较容易理解并且好的正则验证的代码。

函数名称:IsTelephone
函数功能:固话,手机号码检查函数,合法返回true,反之,返回false
函数参数:obj,待检查的号码
检查规则:
  (1)电话号码由数字、"("、")"和"-"构成
  (2)电话号码为3到8位
  (3)如果电话号码中包含有区号,那么区号为三位或四位
  (4)区号用"("、")"或"-"和其他部分隔开
  (5)移动电话号码为11或12位,如果为12位,那么第一位为0
  (6)11位移动电话号码的第一位和第二位为"13"
  (7)12位移动电话号码的第二位和第三位为"13"
********************/

function IsTelephone(obj)// 正则判断
{
var pattern=/(^[0-9]{3,4}-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^([0-9]{3,4})[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/;
if(pattern.test(obj))
{
return true;
}
else
{
return false;
}
}

function isphonenumber(str) 非正则判断
{
   var i,strlengh,tempchar;
   str=CStr(str);
   if(str=="") return false;
   strlength=str.length;
   for(i=0;i<strlength;i++)
   {
        tempchar=str.substring(i,i+1);
        if(!(tempchar==0||tempchar==1||tempchar==2||tempchar==3||tempchar==4||tempchar==5||tempchar==6||tempchar==7||tempchar==8||tempchar==9||tempchar==';-';))
        {
        alert("电话号码只能输入数字和中划线 ");
        return(false);
        }   
   }
   return(true);
}

实例二

function Checkreg()
{
//验证电话号码手机号码,包含153,159号段
    if (document.form.phone.value=="" && document.form.UserMobile.value==""){
        alert("电话号码和手机号码至少选填一个阿!");
        document.form.phone.focus();
        return false;
        }
    if (document.form.phone.value != ""){
        var phone=document.form.phone.value;
        var p1 = /^(([0+]d{2,3}-)?(0d{2,3})-)?(d{7,8})(-(d{3,}))?$/;
        var me = false;
        if (p1.test(phone))me=true;
        if (!me){
            document.form.phone.value='';
            alert('对不起,您输入的电话号码有错误。区号和电话号码之间请用-分割');
            document.form.phone.focus();
            return false;
        }
    }
    if (document.form.UserMobile.value != ""){
        var mobile=document.form.UserMobile.value;
        var reg0 = /^13d{5,9}$/;
        var reg1 = /^153d{4,8}$/;
        var reg2 = /^159d{4,8}$/;
        var reg3 = /^0d{10,11}$/;
        var my = false;
        if (reg0.test(mobile))my=true;
        if (reg1.test(mobile))my=true;
        if (reg2.test(mobile))my=true;
        if (reg3.test(mobile))my=true;
        if (!my){
            document.form.UserMobile.value='';
            alert('对不起,您输入的手机或小灵通号码有错误。');
            document.form.UserMobile.focus();
            return false;
        }
        return true;
    }
}

说明
test方法检查在字符串中是否存在一个模式,如果存在则返回 true,否则就返回 false。

正则表达式部分:
d 代表一个数字
{7,8} 代表7-8位数字(表示电话号码)
{3,} 代表分机号码
d{2,3} 代表区号
+]d{2,3} 代表国际区号
^13d{5,9}$/ //130–139。至少5位,最多9位
/^153d{4,8}$/ //联通153。至少4位,最多8位
/^159d{4,8}$/ //移动159。至少4位,最多8位

时间: 2024-11-03 08:07:24

收藏js电话 手机号码验证正则做法的相关文章

实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)_javascript技巧

//校验是否全由数字组成 复制代码 代码如下: function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } //校验登录名:只能输入5-20个以字母开头.可带数字."_"."."的字串 复制代码 代码如下: function isRegisterUserName(s) { var patrn=/^[a-zA-Z]{1}([a-zA-Z0

js电话号码 手机号码验证函数

要求:一.移动电话号码为11或12位,如果为12位,那么第一位为0 二.11位移动电话号码的第一位和第二位为"13" 三.12位移动电话号码的第二位和第三位为"13" 用途:检查输入手机号码是否正确 输入: s:字符串 返回: 如果通过验证返回true,否则返回false */ java代码     1. function f_check_mobile(obj){        2.     var regu =/(^[1][3][0-9]{9}$)|(^0[1][

手机号码验证方法(正则验证)

只允许输入数字 <xsl:attribute name="onkeyup">value=value.replace(/[^\d]/g,'')</xsl:attribute> <xsl:attribute name="onbeforepaste">clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))</xsl:attri

一个容易犯错的js手机号码验证正则表达式(推荐)

写一个简单的正则表达式,用来校验11位手机号码,开头允许是13.15.18,我一开始这样写: var reg = /^(13[0-9]{9})|(15[0-9]{9})|(18[0-9]{9})$/; 运行发现,即使是 13988888877157777,也能通过验证,这说明这个写法错了,我的本意是希望这样: ^(13[0-9]{9})$ 或者 ^(15[0-9]{9})$ 或者 ^(18[0-9]{9})$ 所以正确写法是:var reg = /^1[358][0-9]{9}$/;这样才能保证

常用javascript表单验证正则(电话,邮箱,数字,非法字符)

常用网页特效表单验证正则(电话,邮箱,数字,非法字符)  function $(obj){     return document.getelementbyid(obj);     }     function test_phone(strphone)     {      var myreg = /(^(0d{2,3})-(d{8})$)|(^(0d{3})-(d{7})$)|(^(0d{2})-(d{8})-(d+)$)|(^(0d{3})-(d{7})-(d+)$)|(^(13|15|18

js ip与域名正则验证程序

js ip与域名正则验证程序 function checkIP() {  var ipArray,ip,j;  ip = document.ipform.ip.value;    if(/[A-Za-z_-]/.test(ip)){   if(!/^([w-]+.)+((com)|(net)|(org)|(gov.cn)|(info)|(cc)|(com.cn)|(net.cn)|(org.cn)|(com.ru)|(net.ru)|(org.ru)|(name)|(biz)|(hk)|(tv)

JS 日期验证正则附asp日期格式化函数_javascript技巧

javascript 日期验证正则 复制代码 代码如下: var pattern = /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)

php中手机号码验证的正则表达式

收藏了二款手机号码验证的代码,一是前台用jquery验证再用后台php教程代码来验证手机号是否合法,希望对大家有用. 前端代码我使用jquery.validate.js,代码如下:   JavaScript代码 <script type="text/网页特效">    $(document).ready(function() {        $("#smForm").validate({            rules: {             

最新手机号码验证正则表达式

原文:最新手机号码验证正则表达式 转自:最新手机号码验证正则表达式js版 由于手机号段的不断更新,以前的正则表达式已经无法满足需求.重新编写这条表达式,号段资料来源依据:http://www.jihaoba.com/tools/haoduan/ 现有手机号段: 移动:139   138   137   136   135   134   147   150   151   152   157   158    159   178  182   183   184   187   188   联通