前言
在我们的日常开发工作中,正则表达式是很常用的功能。看上去 “稀松平常”,可是谁能想到!这个却让我栽了个跟头,跟往常一样做个cv工程师 百度手机号验证随便找一个
我的天啊,这个是2019年的文章,之前我看也不看直接就上手了,然后测试也通过了,到了线上客户已注册完了,为什么我199开头的不行啊,为什么我166开头的不行啊,坑死我了,所以一定学习正则至少能看懂,能写简单的正则!小试身手
先用语言描述百度的手机正则是什么意思
^1[34578]\d{9}$
1开头+34578第二位数字+9位数字 是不是很简单呢
元字符
这里只列出几个常用的更多的看底部的文档
\ 转义符
^ 字符串初始值
$ 字符串结束值
\* 匹配0次或者多次
\+ 匹配一次或者多次
\+ 匹配式零次或一次
{n} 匹配n次,不能为负数
{n,} 至少匹配n次,不能为负数
{n,m} 匹配n <= m次,不能为负数
\b 匹配一个单词边界
\d 匹配一个数字
/g 全局匹配
/i 不区分大小写
() 分组
[] 字符串合集
步步解析
上面的元字符是不是看晕了,没关系稍微解释下就明白了,其实很简单
先来一个之前的
^1[34578]\d{9}$ //^代表开头后面加个1就是1开头 []代表允许的数据34578说明是可以为34578 \d代表数字{9}代表匹配9次
再来一个新的
^\d{4}[/-]\d{2}[/-]\d{2}$ //^开头4位数字 []里面是/- 允许位/或者- \d{2}再两位数字 再/或者- 再2位数字结尾
小展身手
现在来几个例子
1.将那手机正则改为正确的
^1[34578]\d{9}$ ==> ^1[3456789]\d{9}$ //在中括号内加上6和9,这样就行了 代表第二位能为3456789
2.将2019-11-07和2019/11/07 改为 07-11-2019
首先找到我们要的数据 ^(\d{4})[/-](\d{2})[/-](\d{2})$ 通过()进行分组 再通过$2-$3-$1进行重新排列就行了
结语
这就是简单的正则入门,个人感觉真的是很简单了,以前没想过要学习这个,感觉网上抄一抄就好了,可是最近重视了起来,因为项目上线路由要改成懒加载的,几百个路由如果手改要改一天还不一定对,用正则就可以轻松搞定啦