正则表达式的概念
由普通字符及特殊字符(元字符)组成的对字符串进行过滤的逻辑公式
创建方式 字面量的方式 构造函数
. 元字符,代表除了换行之外的所有单个字符
*号 元字符,出现任意次(0-n次) 重复*前的字符的多次匹配
+ 表示至少1次
? 表示0-1次
[]表示字符可以出现的范围 -
\w 等价于[a-zA-Z0-9_] //数字字母下划线 \W 非字母数字下划线
\d 代表数字 等价于[0-9]
\D{7,8}匹配至少 7 个非数字 相当于[^0-9]{7,}
/^ 匹配开始 $/ 匹配结尾
\s 匹配空格
\b 可以匹配是否到了边界, 把str当成一个单词来搜索
| 代表或者的意思 匹配其中一种字符串|
() 加上小括号 将内容进行分组,可以作为一个整体进行多次匹配
常用的正则表达式:
检查邮政编码//共 6 位数字,第一位不能为0
/^[1-9]\d{5}$/
检查文件压缩包 //xxx.zip\xxx.gz\xxx.rar
/^\w+\.(zip|gz|rar)$/
删除多余空格
str.replace(/\s/g,'')
删除首尾空格
str.replace(/^\s+/,'');
str.replace(/\s+$/,'')
电子邮件( xxxxx @ xxxx(.xxxx)+)
/^\w+@\w+(\.\w+)+$/
手机号
/^1(3|5|7|8)\d{9}$/
身份证
/^\d{17}(\d|X)$/
日期 (xxxx-xx-xx| xxxx/xx/xx | xxxx.xx.xx)
/^\d{2}|\d{4}[-\/\.]\d{2}[-\/\.]\d{2}$/
只能输入中文
str.replace(/[^\u4e00-\u9fa5]/g,'')
账户名只能使用数字字母下划线,且数字不能开头,长度在6-15之间
/^[a-zA-Z_]\w{5,14}$/