常用的正则表达式集合

296 阅读2分钟

「这是我参与2022首次更文挑战的第5天,活动详情查看:2022首次更文挑战

大家好,我是 摸鱼小公举,一个不想摸鱼的公举,期待着有一天能够咸鱼翻身。上一篇文章是 CSS-雪碧图-逐帧动画,文章内容是用CSS3-雪碧图实现逐帧动画。今天我们来总结一些常用的正则表达式的例子,希望对大家有用。

1630306777.png

正文内容

正则表达式边界:^和$分别表示正则的开始和结束边界(不匹配具体字符)

1,正则校验手机号码

if(!/^1[3456789]\d{9}$/.test(val)){
  return this.$toast('请输入正确的手机号码')
}

2,正则校验电子邮箱

if(!/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/.test(val)){
  return this.$toast('请输入正确的邮箱地址')
}

3,正则校验URL地址

if(!/^[a-zA-Z0-9]{4,32}$/.test(val)){
  return this.$toast('请输入正确的URL地址')
}

4,正则校验密码(密码强度)

(1) 纯6位数密码

if(!/\d{6}/.test(val)){
  return this.$toast('请输入6位数字密码')
}

(2) 6-21位数字或字母,不能是纯字母或纯数字

if(!/(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,21}/.test(val)){
  return this.$toast('请输入6-21位数字或字母的密码')
}

(3) 6-20位英文字母、数字或者符号(除空格),且字母、数字和标点符号至少包含两种

if(!/^(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$)([^\u4e00-\u9fa5\s]){6,20}$/.test(val)){
  return this.$toast('密码强度不够')
}

5,正则校验邮政编码

if(!/^[1-9]\d{5}(?!\d)$/.test(val)){
  return this.$toast('请输入正确的邮政编码')
}

6,正则校验身份证号码

(1) 18位的身份证号码

if(!/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/.test(val)){
  return this.$toast('请输入18位的身份证号码')
}

(2) 15位的身份证号码

if(!/^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$/.test(val)){
  return this.$toast('请输入15位的身份证号码')
}

(3)结合起来

if(!/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$/.test(val)){
  return this.$toast('请输入正确的身份证号码')
}

7,正则校验合法IP地址(ipv4/ipv6)

if(!/^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$/.test(val)){
  return this.$toast('请输入合法IP地址')
}

8,通用的正则校验银行卡号

if(!/^([1-9]{1})(\d{14}|\d{18})$/.test(val)){
  return this.$toast('请输入正确的银行卡号')
}

9,正则校验车牌号

if(!/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-HJ-NP-Z]{1}[A-HJ-NP-Z]{1}[A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]{1}$/.test(val)){
  return this.$toast('请输入正确的车牌号')
}

10,匹配中文,英文字母和数字以及_

if(!/^[\u4e00-\u9fa5_a-zA-Z0-9]+$/.test(val)){
  return this.$toast('请输入正确内容')
}

11,正则校验中文

(1)/^[\u0391-\uFFE5A-Za-z]+$/.test('中文内容') ; 此校验暂时不确定范围是否比下面那个还大,有知道的朋友就留言跟我说一声吧

(2)\u4E00-\u9FA5只是我们常用的GBK汉字范围。汉字不止这些

if(!/^[\u4E00-\u9FA5]+$/.test(val)){
  return this.$toast('只能输入中文')
}

12,护照号的校验规则

if(!/^1[45][0-9]{7}$|(^[P|p|S|s]\d{7}$)|(^[S|s|G|g|E|e]\d{8}$)|(^[Gg|Tt|Ss|Ll|Qq|Dd|Aa|Ff]\d{8}$)|(^[H|h|M|m]\d{8,10}$)/.test(val)){
  return this.$toast('请输入正确的护照号')
}

13,最多一位小数

if(!/^[0-9]+([.]{1}[0-9]{1})?$/.test(val)){
  return this.$toast('最多一位小数')
}

14,正则校验是否两位小数

if(!/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/.test(val)){
  return this.$toast('只能两位小数')
}

16,QQ号码

if(!/^[1-9][0-9]{4,12}$/.test(val)){
  return this.$toast('请输入正确的QQ号码')
}

结语

好了文章到这就结束了,欢迎大家( 点赞+评论+关注 ) 有问题可以来互相交流一下;希望这篇文章对大家有用,也希望大家多多支持我。 今天是我参与2022首次更文挑战的第5天,加油!