在各种编程语言中,都需要借助正则表达式式来对字符串作匹配、测试或者搜索等操作。正则表达式是一种逻辑规则的表达式,经常被用于用户输入的校验。在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)$/ |
一些特殊的正则
参考链接: