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

下面是关于"jQuery实现手机号正则验证输入及自动填充空格功能"的完整攻略:

1. 编写基本的HTML和CSS代码

HTML代码中需要一个<input>标签,来接收用户的手机号码,如下所示:

<form>
  <label for="phone">手机号码</label>
  <input type="tel" id="phone" name="phone" placeholder="请输入手机号码">
</form>

其中,type属性设置为tel,表示这是一个手机号码输入框,这样可以在移动设备中自动弹出数字键盘,而且还可以通过maxlength属性限制用户输入的字符个数。

CSS样式代码中,可以添加一些样式,使input标签更易于用户识别。比如可以添加下划线效果、设置输入框宽度、背景颜色、字体尺寸等,如下所示:

input[type="tel"] {
  border: none;
  border-bottom: 2px solid #cccccc;
  width: 100%;
  background-color: transparent;
  font-size: 16px;
  padding-bottom: 10px;
  margin-bottom: 20px;
  color: #333333;
  outline: none;
}

input[type="tel"]:focus {
  border-bottom: 2px solid #0084ff;
}

以上是一个基本的HTML和CSS代码,接着就可以开始JavaScript代码的编写了。

2. 使用jQuery编写手机号码验证和自动添加空格功能

在HTML代码中添加jQuery库的引用,然后在<script>标签中编写JavaScript代码。具体代码如下:

<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
<script>
$(function() {
  // 输入栏自动添加空格
  $('#phone').on('input', function() {
    var val = $(this).val();
    val = val.replace(/\D/g, '').substring(0, 11);
    var len = val.length;
    if(len > 3 && len < 8) {
      val = val.substring(0, 3) + ' ' + val.substring(3);
    } else if(len >= 8) {
      val = val.substring(0, 3) + ' ' + val.substring(3, 7) + ' ' + val.substring(7);
    }
    $(this).val(val);

    // 手机号码正则验证
    var pattern = /^(1\d{2})(\d{4})(\d{4})$/;
    var flag = pattern.test(val);
    if(!flag) {
      $(this).css('color', '#ff0000');
      $(this).attr('data-status', 'invalid');
    } else {
      $(this).css('color', '#333333');
      $(this).attr('data-status', 'valid');
    }
  });
});
</script>

以上代码中,首先使用jQuery$(function(){})语法,在页面加载完毕后执行函数中的代码。然后针对#phone元素的input事件添加事件处理函数,实现自动添加手机号码空格和正则验证。

其中,var val = $(this).val();获取输入框中的值,然后使用JavaScript的正则表达式进行筛选,只留下数字。再根据手机号码的特点,在第3位和第8位插入空格。最后使用$(this).val(val);将格式化后的值填充到输入框中。

接下来,用正则表达式进行手机号码验证。符合/^1\d{2}\d{4}\d{4}$/这个正则表达式的字符串才是正确的手机号码,符合要求时将status设置为valid,否则设置为invalid

最后需要针对data-status的值进行CSS样式的修改。data-status等于valid,将字体颜色设置为黑色,否则设置为红色。

示例代码:

<form>
  <label for="phone">手机号码</label>
  <input type="tel" id="phone" name="phone" placeholder="请输入手机号码"/>
  <span id="check_phone"></span>
</form>
#check_phone {
  display: block;
  margin-top: 10px;
  font-size: 14px;
}
#phone[data-status="invalid"] {
  border-bottom: 2px solid #ff0000;
}
$(function() {
  $('#phone').on('input', function() {
    var val = $(this).val();
    val = val.replace(/\D/g, '').substring(0, 11);
    var len = val.length;
    if(len > 3 && len < 8) {
      val = val.substring(0, 3) + ' ' + val.substring(3);
    } else if(len >= 8) {
      val = val.substring(0, 3) + ' ' + val.substring(3, 7) + ' ' + val.substring(7);
    }
    $(this).val(val);
    var pattern = /^(1\d{2})(\d{4})(\d{4})$/;
    var flag = pattern.test(val);
    if(!flag) {
      $(this).attr('data-status', 'invalid');
      $('#check_phone').text('请输入正确的手机号码');
    } else {
      $(this).attr('data-status', 'valid');
      $('#check_phone').text('');
    }
  });
});

示例说明:

上述代码中,我们完整地编写了一个基于jQuery的手机号码输入框,能够实现手机号码的正则验证以及自动添加空格的需求。运行效果可以在浏览器中查看,也可以通过上传到服务器对其进行部署。

接下来我们来看下两条示例:

示例1

<div>
  <label for="phone">手机号码</label>
  <input type="tel" id="phone" name="phone" placeholder="请输入手机号码"/>
  <span id="check_phone"></span>
</div>

以上代码可以在任意的html页面中添加,即可生成对应的手机号码输入框。其中,check_phone表示用于提示用户输入结果的元素,可以随意更改。

示例2

function inputPhone(id) {
  $('#' + id).on('input', function() {
    var val = $(this).val();
    val = val.replace(/\D/g, '').substring(0, 11);
    var len = val.length;
    if(len > 3 && len < 8) {
      val = val.substring(0, 3) + ' ' + val.substring(3);
    } else if(len >= 8) {
      val = val.substring(0, 3) + ' ' + val.substring(3, 7) + ' ' + val.substring(7);
    }
    $(this).val(val);
    var pattern = /^(1\d{2})(\d{4})(\d{4})$/;
    var flag = pattern.test(val);
    if(!flag) {
      $(this).attr('data-status', 'invalid');
      $('#' + id + '_check').text('请输入正确的手机号码');
    } else {
      $(this).attr('data-status', 'valid');
      $('#' + id + '_check').text('');
    }
  });
}
inputPhone('phone');

以上代码可在浏览器的开发者工具中运行,并可查看到效果,实现了同样的手机号码验证和填充空格功能。需要结合HTML和CSS代码使用,比如HTML代码为:

<div>
  <label for="phone">手机号码</label>
  <input type="tel" id="phone" name="phone" placeholder="请输入手机号码"/>
  <span id="phone_check"></span>
</div>

表示ID为phone的元素实现手机号码验证和输入自动空格的功能,并且check元素的ID为phone_check

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery实现手机号正则验证输入及自动填充空格功能 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • jQWidgets jqxListBox addItem()方法

    jQWidgets jqxListBox addItem()方法攻略 简介 jQWidgets 是一个基于 jQuery 的 UI 组件库,提供了丰富的 UI 组件和工具,可于创建代化应程序。jqxListBox 组件是一个用于显示列表的组件,支持多选和单选。本攻略将详细介绍 jqxListBox 的 addItem() 方法,包括如何使用和示例说明。 使用…

    jquery 2023年5月10日
    00
  • jQuery UI滑块禁用选项

    以下是关于 jQuery UI 滑块禁用选项的详细攻略: jQuery UI 滑块禁用选项 jQuery UI 提供了一个名为 disabled 的选项,用于禁用滑块。当该选项设置为 true ,滑块将被禁用,用户无法对其进行操作。 语法 $( ".selector" ).slider({ disabled: true }); 示例一:禁…

    jquery 2023年5月11日
    00
  • jQuery Mobile Toolbar updatePagePadding()方法

    jQuery Mobile是一款快速创建响应式移动Web应用程序的JavaScript库。其中,ToolBar是jQuery Mobile的一项重要功能,提供了灵活的布局和导航方式。jQuery Mobile Toolbar updatePagePadding()方法是用于在更改工具栏内容后调整页面的填充( padding) 的方法,下面将对该方法进行详细讲…

    jquery 2023年5月12日
    00
  • JQuery异步获取返回值中文乱码的解决方法

    关于“JQuery异步获取返回值中文乱码的解决方法”,我将为您提供以下完整攻略,充分介绍这个问题的出现原因以及解决方法: 问题描述 在使用JQuery实现异步Ajax请求时,可能会出现返回值中文乱码的情况。 出现原因 导致这种情况的主要原因是:“请求和返回的字符集不同”。 客户端浏览器通常使用UTF-8字符集,而服务器端的字符集由后端编程语言和Web服务器决…

    jquery 2023年5月27日
    00
  • jQuery的3种请求方式$.post,$.get,$.getJSON

    jQuery是一种非常流行的JavaScript库,用于简化开发人员在HTML文档中进行DOM操作、事件处理、添加动画效果、处理ajax请求等任务。其中,jQuery提供了三种不同的方式来进行ajax请求,分别是$.post、$.get、$.getJSON,本篇攻略将详细讲解这三种请求方式的用法及其区别。 $.post $.post() 方法是通过HTTP …

    jquery 2023年5月28日
    00
  • jQWidgets jqxSlider模板属性

    jQWidgets是一个基于jQuery的UI插件库,包含了丰富的UI组件,jqxSlider是其中的一个滑动门控件。在使用jqxSlider组件时,我们经常需要对其进行样式调整,而模板属性(template properties)提供了一种简单的方式来自定义控件的外观。 模板属性指定了控件中各个元素的HTML模板,通过对这些模板进行修改,我们可以调整控件的…

    jquery 2023年5月11日
    00
  • JavaScript与JQUERY获取元素的宽、高和位置

    获取元素的宽、高和位置是在JavaScript和jQuery中经常使用的操作。下面我将从两者的角度分别介绍。 一、JavaScript中获取元素的宽、高和位置 在JavaScript中,我们可以用以下三个属性来获取元素的宽、高和位置: offsetWidth、offsetHeight offsetWidth和offsetHeight属性表示元素的外部宽度和高…

    jquery 2023年5月28日
    00
  • jQuery autocomplate 自扩展插件、自动完成示例代码

    jQuery Autocomplete是一个非常实用的jQuery插件,它可以帮助我们在输入框中实现自动补全和提醒功能。同时,它还支持自定义扩展,因此可以按照需要进行灵活调整。 自定义扩展 Autocomplete提供了许多可自定义的扩展功能。下面是其中几项: source 这个属性定义了来自哪个URL或数组中获取数据,jQuery Autocomplete…

    jquery 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部