欢迎访问宙启技术站
智能推送

jQuery如何实现手机号正则验证输入及自动填充空格功能

发布时间:2023-05-16 09:58:37

一、手机号正则验证输入:

在 jQuery 中可以使用正则表达式来判断手机号是否符合规定的格式。具体步骤如下:

1. 获取输入框内容

使用 jQuery 的 val() 方法获取输入框中的文本内容,如下所示:

var phoneNum = $('#phoneNum').val();

其中,#phoneNum 表示文本框的 ID。

2. 正则表达式验证

使用正则表达式验证手机号是否符合要求,如下所示:

var reg = /^1[3456789]\d{9}$/;

if (reg.test(phoneNum)) {

  //符合要求的手机号

} else {

  //不符合要求的手机号

}

其中,^1[3456789]\d{9}$ 表示手机号的正则表达式,具体解释如下:

^:表示字符串开头

1:表示以数字 1 开头

[3456789]:表示第二位是 3、4、5、6、7、8、9 中的任意一个数字

\d{9}:表示接下来的 9 位是数字

$:表示字符串结尾

3. 完整的代码

使用完整的代码如下所示:

$(document).ready(function(){

  $('#phoneNum').blur(function(){

    var phoneNum = $('#phoneNum').val(); //获取输入框内容

    var reg = /^1[3456789]\d{9}$/; //正则表达式验证

    if (reg.test(phoneNum)) { //符合要求的手机号

      $('#phoneNumError').text(''); //清空提示信息

    } else { //不符合要求的手机号

      $('#phoneNumError').text('请输入正确的手机号码');

    }

  });

});

其中:

$(document).ready() 表示页面加载完成后执行的代码。

$('#phoneNum').blur() 表示输入框失去焦点后执行的代码。

$('#phoneNumError') 表示提示信息所在的标签 ID。

二、自动填充空格功能:

为了让手机号码更易于阅读和输入,我们可以让它自动填充空格。具体步骤如下:

1. 获取输入框内容

使用 jQuery 的 val() 方法获取输入框中的文本内容,如下所示:

var phoneNum = $('#phoneNum').val();

其中,#phoneNum 表示文本框的 ID。

2. 去除空格

使用 JavaScript 的 replace() 方法去除所有空格,如下所示:

phoneNum = phoneNum.replace(/\s/g, '');

其中,/\s/g 表示全局匹配空格,replace() 方法将匹配到的空格替换为空字符。

3. 按照要求添加空格

按照手机号码的格式要求添加空格,如下所示:

if (phoneNum.length === 11) { //手机号位数为 11 位

  phoneNum = phoneNum.slice(0, 3) + ' ' + phoneNum.slice(3, 7) + ' ' + phoneNum.slice(7);

}

其中,slice() 方法用于截取字符串:

slice(0, 3) 表示从第 0 位截取到第 3 位,包括第 0 位不包括第 3 位,即截取前三位。

+ ' ' 表示添加一个空格。

slice(3, 7) 表示从第 3 位截取到第 7 位,不包括第 7 位,即截取第 4、5、6、7 位。

+ ' ' 表示再添加一个空格。

slice(7) 表示从第 7 位一直截取到字符串末尾。

4. 把处理后的手机号码填充回输入框

使用 jQuery 的 val() 方法把处理后的手机号码填充回输入框,如下所示:

$('#phoneNum').val(phoneNum);

其中,#phoneNum 表示输入框的 ID。

5. 完整的代码

使用完整的代码如下所示:

$(document).ready(function(){

  $('#phoneNum').keyup(function(){

    var phoneNum = $('#phoneNum').val(); //获取输入框内容

    phoneNum = phoneNum.replace(/\s/g, ''); //去除空格

    if (phoneNum.length === 11) { //手机号位数为 11 位

      phoneNum = phoneNum.slice(0, 3) + ' ' + phoneNum.slice(3, 7) + ' ' + phoneNum.slice(7);

      $('#phoneNum').val(phoneNum); //填充回输入框

    }

  });

});

其中:

$(document).ready() 表示页面加载完成后执行的代码。

$('#phoneNum').keyup() 表示在输入框按键后执行的代码。

为了更好的用户体验,建议在 blur() 事件和 keyup() 事件中都添加。

总结:

以上就是 jQuery 实现手机号正则验证输入及自动填充空格功能的实现方法,我们可以根据实际需要进行修改和调整。如果有任何问题或者改进意见,欢迎留言和讨论。