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日

相关文章

  • JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解

    JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解 在javascript中,遍历数组和对象是非常常见的操作。它们之间有一些区别,我们需要学会如何正确遍历它们。此外,递归遍历对象、数组、属性也是非常重要的技能。在本文中,我们将详细讲解相关内容。 一、JS遍历数组和对象的区别 遍历数组 遍历数组通常使用for循环或forEach()方法。for循环可…

    JavaScript 2023年5月27日
    00
  • react结合typescript 封装组件实例详解

    下面是 “react结合typescript 封装组件实例详解”的完整攻略。 一、为什么要使用TypeScript TypeScript 是 JavaScript 的一个超集,它可以为 JavaScript 提供类型检查和其他一些新特性。TypeScript 具有以下优点: 代码更加健壮,更容易维护。 更好的智能提示和 IDE 支持。 更容易对代码进行重构。…

    JavaScript 2023年6月10日
    00
  • 基于JavaScript表单脚本(详解)

    基于JavaScript表单脚本(详解) 1. JavaScript表单脚本概述 JavaScript表单脚本是一种可以处理HTML表单的编程语言,可以修改表单元素,验证表单数据以及提交表单,并与服务器进行通信。 主要包括以下几个方面: 访问表单元素:JavaScript可以使用document.forms或者document.getElmentById()…

    JavaScript 2023年5月18日
    00
  • js定时器出现第一次延迟的原因及解决方法

    JS定时器出现第一次延迟的原因是:浏览器在解释JavaScript代码时,会从上到下依次执行,而定时器是一种异步事件,会被放到事件队列中,等待JavaScript引擎空闲时才会执行。因此,定时器第一次执行会有一段时间的等待。 解决方法则是使用setTimeout()或setInterval()方法,并通过调用一次函数来解决此问题。 示例1:使用setTime…

    JavaScript 2023年6月11日
    00
  • JavaScript如何实现防止重复的网络请求的示例

    要实现防止重复的网络请求,可以采用以下几种方法: Promise + debounce Promise 是 ES6 中新增加的异步编程解决方案,它可以有效地避免回调地狱的问题,通过 Promise 的方式来实现网络请求防重。而 debounce 是一个防抖函数,用来控制网络请求的触发时间间隔,防止因为用户快速连续点击而发送重复的网络请求。 下面是示例代码: …

    JavaScript 2023年5月28日
    00
  • js删除数组元素、清空数组的简单方法(必看)

    JavaScript删除数组元素和清空数组的简单方法 在JavaScript中,删除数组元素和清空数组的操作并不像其他编程语言那样简单。不过,在掌握了一些技巧和方法后,我们就能够轻松实现这些操作了。 删除数组元素 splice方法 JavaScript提供了splice()方法,该方法可以用于删除数组元素。 array.splice(start, delet…

    JavaScript 2023年5月27日
    00
  • Web 安全之Cookie劫持详细介绍

    Web 安全之 Cookie 劫持是指攻击者利用各种手段,窃取用户身份认证凭证 Cookie 值,进而获取被攻击者的用户身份信息和操作权限,从而进行一系列有害的攻击行为。下面将为大家介绍 Cookie 劫持的攻击方法和防御策略。 什么是 Cookie 劫持? 在 Web 开发中,服务器端通过 Set-Cookie 头信息发送给客户端浏览器,客户端浏览器存储该…

    JavaScript 2023年6月11日
    00
  • js实现截取某个字符串前面的内容

    让我来详细讲解如何使用JavaScript实现截取某个字符串前面的内容。下面是具体步骤: 1. 使用indexOf()获取关键字的位置 在JavaScript中,我们可以使用indexOf()函数来获取字符串中某个关键字的位置,该函数会返回第一个匹配到的关键字的索引值,如果没有匹配到关键字则返回-1。我们可以利用这个函数来获取关键字在原字符串中的位置,从而确…

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