这两天照镜子发现一如既往的帅,于是乎翻起了正则,打算学习梳理记录起来,一起来开心的掉发吧。自拍镇楼
纯属个人学习所记录,写的不对烦请指正,有些理解与大牛有出入。勿喷!话不多说,欢乐时光就要开始了。
首先让我们来了解一下正则是干什么的,抄他家翻他家底。正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。看起来有点枯燥,这段话是我复制过来的。其实通俗点讲就是在网页上我们经常需要按照某种规则去匹配符合条件的字符串,正则就是记录文本规则的代码。
好了,至于为什么要用正则,正则有什么好就不用再瞎比比了。接下来说一下元字符,因为字符挺多的。就不一一列举了,到下文有用到的就直接使用了,不大懂的建议翻看上一篇文章查阅一下正则表达式元字符大整理
再列举一下正则的几种用法:
1、test():在字符串查找符合正则的内容,如果查找到返回true,反之返回false
用法:正则.test(字符串)
2、search():在字符串搜索符合正则的内容,找到就返回出现的位置index。如果有多个相匹配的,只会返回第一个匹配的位置。搜索失败返回-1
用法:字符串.search(正则)
3、match():在字符串搜索符合正则的内容,成功返回内容(数组格式),失败返回null。
用法:字符串.match(正则)
4、replace():查找符合正则的内容,替换成对应字符串。返回替换后的内容
用法: 字符串.replace(正则,‘替换内容’)
练习题1:验证用户输入的邮政编码是否正确
邮政编码一般都是六位数字,那么看下表达式的规则代码怎么写。正则里面的//等同于双引号。接下来是^是表示以xx开头,而$则是以xx结尾,
接下来的d就是表示任意数字,而{6}就表示6位数字了。代码串起来理解便是以数字开头,内容一共是6位数字,也以数字结尾。那么这样就可以以这个规则匹配邮箱了
练习题2:验证用户输入的身份证是否正确,要求:要么是15位,要么是18位的数字。15位的最后一位也有可能是x
那么看一下正则怎么写呢
练习题3:验证日期格式是否正确。日期格式都是2018-12-14,四位数-两位数-两位数,那么看下正则写法
上面的写法看起来是没什么问题的,因为首先月份是0-12,日期是0-31.而不是任意的数字了,所以还是要重新写一遍。看下图
练习题4:将手机号中间4位换成*,看下正则写法
练习题5:将一段文本中的MM/DD/YYYY格式的日期转换为YYYY-MM-DD格式。假如我的生日是1995/11/00,而翻转过来就是00/11/1995了,那么怎么转换呢,看上面的例子,再来写正则
练习题6:找出数组中的表示日期的时间字符串,并修改格式为‘日-月-年’
练习题7:去掉http协议的jpg文件的协议头
练习题8:将字符串中的abc替换为xyz
练习题9:判断字符串是否符合指定格式xxx-xx-x,Number类型
练习题10:判断字符串是否以元音字母结尾
练习题11:匹配QQ号,5-10位数字,第一位非0
练习题12:判断QQ邮箱格式是否正确,前面5-10位数字,加上@qq.com
练习题13:清空字符串的前后空格
练习题14:字符串转驼峰写法
练习题15:验证汉字