正则表达式有那么难?记住这2个就可以效率提升20倍

269 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第7天,点击查看活动详情

前言

正则表达式大家一听就头疼,那么多符号完全记不住啊?

这些正则吗?

今天要教你怎么写手机号验证正则?

/^1(3\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\d|9[0-35-9])\d{8}$/

密码强度正则?

至少8-16个字符,至少1个大写字母,1个小写字母和1个数字:

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/

只有中文、数字、字母?

/[a-zA-Z0-9\u4E00-\u9FA5]*/

太难了

这些正则谁看得懂啊,当然是网上去搜啊,我们要实用的正则,对于我们能真的用起来的

简单学一学

既然要用起来,还是需要简单学一学的的,只需要记住几个就行了

/.*/   //匹配任意数量字符

用得最多的应该就是这个了,"." 表示匹配字符,"*" 表示0个或多个

有了这个,我们就能做很厉害的事情了

例子

image.png

把上面这个列表转换成下面这个

image.png

可以看起其实数据很规律,很适合使用正则替换

来看看我们应该怎么写

    //原始数据,每行前面有一个空格,然后是字符,空格,字符
    report 上报信息
    basic 基础信息
    verify 核实信息
    check 核查信息
    dispose 处办信息
    apply 申请审核信息

image.png

可以看到截图里面,选择正则替换模式,编辑器自动提示出来替换后的内容了

解析一下

再说一下原始数据格式为:空格+字符+空格+字符

查找表达式: (.*) (.*) 这个表达式很明显,意思了,只是多了一个括号,是引用的意思

替换表达式: static $1 = '$1'; 这里的$1就是上面的第一个括号内容,第二个括号内容是$2,用在下面的例子

image.png

可以看到已经替换成我们想要的格式了

再讲一点

既然都学到这儿了,我们再讲几个常用的

/^aaa/ 表示这一行的行首必须是"aaa"

/.*?/ ""后面放一个"?"表示非贪婪匹配,因为""是任意多个,默认是尽量多的匹配,加上“?”就是尽量少的匹配,对于一行有重复的时候,可以试一下

/\d/ 表示匹配一个数字

/\d*/ 表示匹配任意个数字

好了就学这么多吧,多了也记不住,应该够你用了

总结

正则对于来说最大的用处就是上面的提到的对于有很多数据,看起来是重复步骤的时候,这时候我就会想到用一下正则,大大提升效率

对于那些复杂的验证正则还是网上查一查,那不是更快吗