Mr. Panda
Tech For Fun

正则表达式大全

在各种编程语言中,都需要借助正则表达式式来对字符串作匹配、测试或者搜索等操作。正则表达式是一种逻辑规则的表达式,经常被用于用户输入的校验。在js中,正则表达式是一种对象,在JavaScript里,正则表达式有两个构造方式,一个是通过RegExp这个构造函数创建实例,另一个是正则表达式字面量写法。

什么是正则表达式?

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

正则表达式的使用场景

  • 字符串匹配
  • 字符串搜索
  • 字符串规则验证

正则表达式的语法

手机号码、电话号码正则表达式

正则表达式--验证手机号码:13[0-9]{9} 
实现手机号前带86或是+86的情况:^((\+86)|(86))?(13)\d{9}$ 
电话号码与手机号码同时验证:(^(\d{3,4}-)?\d{7,8})$|(13[0-9]{9})  
提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F)  *=  *('|")?(\w|\\|\/|\.)+('|"|  *|>)?   
提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*   
提取信息中的图片链接:(s|S)(r|R)(c|C)  *=  *('|")?(\w|\\|\/|\.)+('|"|  *|>)? 
提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)     
提取信息中的中国手机号码:(86)*0*13\d{9}     
提取信息中的中国固定电话号码:(\d3,4\d3,4|\d{3,4}-|\s)?\d{8}     
提取信息中的中国电话号码(包括移动和固定电话):(\d3,4\d3,4|\d{3,4}-|\s)?\d{7,14}     
提取信息中的中国邮政编码:[1-9]{1}(\d+){5}     
提取信息中的中国身份证号码:\d{18}|\d{15}     
提取信息中的整数:\d+     
提取信息中的浮点数(即小数):(-?\d*)\.?\d+     
提取信息中的任何数字  :(-?\d*)(\.\d+)?   
提取信息中的中文字符串:[\u4e00-\u9fa5]*     

常用的正则表达式

固定电话/^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/
QQ号码, 5~11位数字组成/^\d{5,11}$/ 
2到6位汉字/^[\u4e00-\u9fa5]{2,6}$/ 
最新手机号正则/^1[3456789]\d{9}$/
由6~20个字母、数字、下划线和减号组成且必须以字母、下划线或减号开头/^[-_a-zA-Z]{1}[-_a-zA-Z0-9]{5,19}$/ 
账号4-10位数字或字母组成 /^[0-9A-Za-z]{4,10}$/
密码由6-16位数字或者字母组成 /^[0-9A-Za-z]{6,16}$/
字母或数字 /^[0-9A-Za-z]*$/
数字或字母或汉字  /^[0-9a-zA-Z\u4E00-\uFA29]*$/
邮编 /^[\d-]*$/i
数字、字母或下划线  /^[0-9a-zA-Z_]*$/
整数且大于0/^[1-9]\d*(\.\d+)?$/
非特殊字符(包括数字字母下划线中文)  /^(\w||[\u4e00-\u9fa5]){0,}$/
整数 /^-?\d+$
正整数/^\+?[1-9]\d*$/
正整数或者小数 或者0/^\d+(\.?|(\.\d+)?)$/
身份证/^\s*(([1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3})|([1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X))|(admin))\s*$/
带1-2位小数的正数或负数/^(\-)?\d+(\.\d{1,2})?$/
零和非零开头的数字/^(0|[1-9][0-9]*)$/
非零开头的最多带两位小数的数字/^([1-9][0-9]*)+(.[0-9]{1,2})?$/
有两位小数的正实数/^[0-9]+(.[0-9]{2})?$/
日期/^\d{4}-\d{1,2}-\d{1,2}/
非负浮点数/^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$/
浮点数/^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$/

一些特殊的正则

参考链接:

学习参考

Jonsam

一个理科IT宅男,喜欢旅游、分享和美食,做点想做的事情,遇见想见的人。

🍒 美食 | 🌐 FE | 🕌 旅行 | 💻 加班 | ♍ 处女座

jonsam ng

jonsam ng

文章作者

海阔凭鱼跃,天高任鸟飞。

正则表达式大全
在各种编程语言中,都需要借助正则表达式式来对字符串作匹配、测试或者搜索等操作。正则表达式是一种逻辑规则的表达式,经常被用于用户输入的校验。在js中,正则表达式是一种对象,在Java…
扫描二维码继续阅读
2021-05-27