JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】

JS常见简单正则表达式验证功能小结

在Web开发中,我们会经常需要验证用户提交的数据是否符合特定的格式。使用正则表达式是一种很方便的方式,本篇攻略旨在介绍常见的一些正则表达式验证功能。

手机号码验证

function isValidPhoneNumber(phoneNumber) {
  const regex = /^1[3-9]\d{9}$/;
  return regex.test(phoneNumber);
}

解释:

  • /^1[3-9]\d{9}$/是一个正则表达式,其中^代表开头,$代表结尾,[3-9]表示第二位数字只能是3~9中的一个,\d{9}表示后面必须是9位数字。
  • test()方法会返回一个布尔值,其返回值为true表示符合正则表达式规则,返回值为false表示不符合。

示例:

isValidPhoneNumber('13912345678'); // true
isValidPhoneNumber('12345678900'); // false

地址验证

function isValidAddress(address) {
  const regex = /^[\u4e00-\u9fa5]{2,}(省|市|自治区|自治州|县|区)[\u4e00-\u9fa5]{2,}$/;
  return regex.test(address);
}

解释:

  • /^[\u4e00-\u9fa5]{2,}(省|市|自治区|自治州|县|区)[\u4e00-\u9fa5]{2,}$/是一个正则表达式,其中[\u4e00-\u9fa5]表示中文字符,{2,}表示至少需要两个中文字符,(省|市|自治区|自治州|县|区)表示地址中必须包含省、市、自治区、自治州、县或区中的一个。

示例:

isValidAddress('北京市朝阳区'); // true
isValidAddress('江苏省南京市浦口区'); // true
isValidAddress('上海市'); // false

企业税号验证

function isValidTaxNumber(taxNumber) {
  const regex = /^[a-zA-Z0-9]{15,20}$/;
  return regex.test(taxNumber);
}

解释:

  • /^[a-zA-Z0-9]{15,20}$/是一个正则表达式,其中[a-zA-Z0-9]表示大小写字母和数字,{15,20}表示长度在15~20之间。

示例:

isValidTaxNumber('91350100657363579C'); // true
isValidTaxNumber('91350100754866372E0123'); // true
isValidTaxNumber('12345'); // false

金额验证

function isValidAmount(amount) {
  const regex = /^\d+(\.\d{1,2})?$/;
  return regex.test(amount);
}

解释:

  • /^\d+(\.\d{1,2})?$/是一个正则表达式,其中\d表示数字,+表示至少出现一次,\.表示小数点,\d{1,2}表示小数点后面最多出现两位数字,?表示小数点及之后的部分可以出现也可以不出现。

示例:

isValidAmount('123.45'); // true
isValidAmount('10000'); // true
isValidAmount('1234.456'); // false

身份证号码验证

function isValidIDCard(idCard) {
  const regex = /^[1-6]\d{5}(19|20)\d{2}((0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])|\d{2}(0[1-9]|[1-2]\d|3[0-1]))\d{3}[0-9xX]$/;
  const areaCode = {
      '11': '北京', '12': '天津', '13': '河北', '14': '山西', '15': '内蒙古',
      '21': '辽宁', '22': '吉林', '23': '黑龙江', '31': '上海', '32': '江苏',
      '33': '浙江', '34': '安徽', '35': '福建', '36': '江西', '37': '山东',
      '41': '河南', '42': '湖北' ,'43': '湖南' ,'44': '广东' ,'45': '广西',
      '46': '海南' ,'50': '重庆' ,'51': '四川' ,'52': '贵州' ,'53': '云南',
      '54': '西藏' ,'61': '陕西' ,'62': '甘肃' ,'63': '青海' ,'64': '宁夏',
      '65': '新疆' ,'71': '台湾' ,'81': '香港' ,'82': '澳门'
  };
  if (!regex.test(idCard)) {
      return false;
  }
  const provinceCode = idCard.substring(0, 2);
  if (!areaCode.hasOwnProperty(provinceCode)) {
      return false;
  }
  return true;
}

解释:

  • /^[1-6]\d{5}(19|20)\d{2}((0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])|\d{2}(0[1-9]|[1-2]\d|3[0-1]))\d{3}[0-9xX]$/是一个正则表达式,其中,开头的[1-6]表示身份证号码的第一位必须是1~6中的一个,\d{5}表示接下来的5位是数字,(19|20)\d{2}表示出生年份只可能是19或20开头的四位数字,(0[1-9]|1[0-2])表示月份只可能是01~12中的一个,(0[1-9]|[1-2]\d|3[0-1])表示日期只可能是01~31中的一个,\d{3}表示接下来的3位是数字,最后一位可能是0~9Xx
  • 验证身份证号码的时候,还需要根据省份区域码来验证编号的真伪,本例代码中定义了一个areaCode对象,保存了身份证号码前两位所代表的省份。

示例:

isValidIDCard('11010119900307001X'); // true
isValidIDCard('11010119900307001234'); // false
isValidIDCard('11110119900307001X'); // false

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】 - Python技术站

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

相关文章

  • 探索浏览器页面关闭window.close()的使用详解

    探索浏览器页面关闭window.close()的使用详解 前言 window.close() 是一个关闭当前浏览器窗口的JavaScript方法。但是,由于该方法具有一些限制,因此在使用它时需要非常小心。在本文中,我们将深入讨论 window.close() 方法。除此之外,还将探讨如何在浏览器中打开和关闭窗口,以及如何在窗口之间传递数据。 打开新窗口 使用…

    JavaScript 2023年6月11日
    00
  • 详细解密jsonp跨域请求

    关于“详细解密jsonp跨域请求”的攻略,包含了如下几个步骤: 1. 什么是JSONP跨域请求 JSONP(JSON with Padding)是一种解决跨域资源共享的方法。它通过在页面的头部加上一个脚本(script)标签,并通过这个标签的src属性向另一个域名发出请求,另一个域名在返回的响应中放入一些JavaScript代码。返回的JavaScript代…

    JavaScript 2023年5月27日
    00
  • 使用JS动态显示文本

    下面是使用JS动态显示文本的完整攻略: 1. 编写HTML代码 首先,在HTML代码中需要创建一个用于显示文本内容的元素,可以是<span>、<div>或者其他你想要的元素。例如,下面代码创建了一个<div>元素: <div id="my-text"></div> 2. 写JS代…

    JavaScript 2023年5月27日
    00
  • uniapp跨页面传值uni.$emit和uni.$on的使用及踩坑实战

    uniapp 跨页面传值:uni.$emit 和 uni.$on 的使用 在一个完整的 uniapp 应用程序中,存在着多个页面组成的应用。有时候我们需要在不同的页面之间传递数据,这时候就要用到 uniapp 提供的跨页面传值方式 —— uni.$emit 和 uni.$on。 1. uni.$emit 和 uni.$on 概述 uni.$emit 和 un…

    JavaScript 2023年6月11日
    00
  • JavaScript正则表达式函数总结(常用)

    JavaScript正则表达式函数总结(常用) 正则表达式是用于处理字符串的强大工具,JavaScript内置了正则表达式对象RegExp,使用正则表达式可以快速而灵活地解析、匹配和替换字符串。 常用正则表达式函数 test() test()方法用于测试一个字符串是否匹配某个正则表达式,返回值为布尔类型,如果匹配成功,则返回true,否则返回false。 l…

    JavaScript 2023年5月27日
    00
  • 深入浅出JS的Object.defineProperty()

    深入浅出JS的Object.defineProperty() Object.defineProperty() 是JavaScript中一个非常重要的定义对象属性的 API。使用 Object.defineProperty() 可以定义对象属性的操作,比如,属性的可枚举性、可配置性、可读写性值等。在深入了解这个API之前,需要知晓一些基础的概念和属性设置,下面…

    JavaScript 2023年5月28日
    00
  • JS实现动画中的布局转换

    JS实现动画中的布局转换可以通过以下步骤完成: 选择需要转换布局的元素:使用JavaScript的DOM操作选择需要进行布局转换的元素,可以通过ID、class或标签名来选择。 设计转换效果:通过CSS或JavaScript来设置需要进行的布局转换效果,例如平移、缩放、旋转等。 绑定事件:通过JavaScript来绑定需要触发布局转换效果的事件,例如鼠标移入…

    JavaScript 2023年6月10日
    00
  • JavaScript实现获取某个元素相邻兄弟节点的prev与next方法

    要实现获取某个元素的相邻兄弟节点,我们可以使用JavaScript提供的DOM API来实现。可以通过元素节点的 previousSibling 和 nextSibling 方法来获取相邻的兄弟节点。 以下是实现获取某个元素相邻兄弟节点的完整攻略: 步骤一:获取元素节点 首先,我们需要获取要查找相邻兄弟节点的元素节点。可以使用 document.getEle…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部