博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
九曲黄河万里沙,浪淘风簸自天涯 — 正则表达式
阅读量:7233 次
发布时间:2019-06-29

本文共 1561 字,大约阅读时间需要 5 分钟。

  hot3.png

心存正气(be good),艺不压身(be great)。幼年间习得的一句话,曾几何时,坚定了某一段路的走法。无奈窗头月落,曾经想要燎原的星火自始至终都在忽闪忽烁,欲灭不灭,欲灼不灼。今天回到这年少万兜鍪的起点,重新拾起这句话,为的不是要勇闯天涯,而是 不辜负这窗外的太平天下。

言及光辉岁月,到了今天想说还能从容说的,就只剩下那年c语言的一枝梨花压海棠了。初入大学靠着一时血勇拼下了c语言全班第一,今日回想也是劲儿作大了,以至往后的数据结构,计算机网络都是像拖死驴一样拖过的,痛苦至极鬼知道。由着这经历也绝了我技术立身的念想,但天命所归,顺之昌,逆之亡,由天不由人,也由人不由天。所以我现在是一个coder,技专前端,一边做匠,一边为文,寄希望匠立其身,文传其家。

书归正言,正则表达式学艺之初讳莫如深,辄尝不遂,后间有触用,经世日久,也明白了大概,男儿天职保家眷,赶上某家主公临近毕业要出来经世,千行万作,终究随了我,但一入侯门深似海,知无尽,学无边,没有捷径寻给她,只能时时劝勉,好在前人播种后人收,有我为她牵马执鞭,但愿能够长路多坦途。

个人认为后端比前端用正则的地方多且复杂,后端用正则处理富文本编辑器生成的字符串,可以直接吐出图文混排的前端结构,两个字,略猛。 前端用正则多是校验邮箱,限制中文输入,解析url之类的,都是小功能,但也花样不少。我在业务上第一次用到正则是要在一个抽奖活动中校验手机号和身份证号。

我记述一下里头正则相关的实现

檄文开征讨,声明始程序,正则像大多数js变量一样有两种声明方式

var lbPattern1 = new RegExp("a");var lbPattern2 = /a/;

上面的是用RegExp()构造函数的实例化来声明,下面的是用引号包裹字符的直接量的方式来声明。孰好孰不好,主流认为下面的好,除了更简洁,也有其他的原因,这个前辈说的详细

正则相关的方法有7种,RegExp 对象自身的方法3种:compile、exec、test,支持正则表达式的 String 对象的方法4种:search、match、relpace、split,当this指向是RegExp 对象,也就是“.方法”点前头是正则的时候用的是前三种,点前头是字符串的时候用的后四种,这里之前有些confuse某家主公,所以着重说与她知道。这些方法具体的使用有个地方说的很明白,我不再多说,就介绍一下我用的test方法,test方法可以检索字符串中指定的值,返回布尔值,简单好用美得很。

手机号码和身份证是有规律的,手机号码规律:第一位是“1”(^1)、第二位或3或4或5或7或8([ 3 | 4 | 5 | 7 | 8])、总共11位剩下的9位都是数字(\d{9}$),身份证规律:15或18位的数字(^(\d{15}$|^\d{18}$)、或者17位的数字加最后一位X或x(^\d{17}(X|x))$)

跑一下

var regPhone = /^1[3|4|5|7|8]\d{9}$/,regId = /^(\d{15}$|^\d{18}$|^\d{17}(X|x))$/;var strPhone = "18378654152",strId = "41038112112456753655";if(!regPhone.test(strPhone)){	console.log("请输入正确手机号");}if(!regId.test(strId)){	console.log("请输入正确身份证号");}

这是抛砖引玉,正则表达式博大精深,能玩出花儿的多的是,希望看到的包括某家主公能够吃馒头拉花卷。

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/iamllb/blog/730910

你可能感兴趣的文章
AppBox升级进行时 - 拥抱Entity Framework的Code First开发模式
查看>>
设计模式(Abstract Factory)抽象工厂
查看>>
修改工程名称
查看>>
使用intellij idea搭建MAVEN+springmvc+mybatis框架
查看>>
ubuntu 编译运行 opencv C++ 项目
查看>>
Node入门教程(10)第八章:Node 的事件处理
查看>>
html5 css3构造的漂亮表格
查看>>
m2014_c->c语言容器类工具列
查看>>
spider-抓取网页内容
查看>>
在Ubuntu下安装和配置Rails 3详解 (LightTPD + FastCGI)
查看>>
DRBD试用手记
查看>>
argparse – Command line option and argument parsing.¶
查看>>
UML 图使用心得
查看>>
《肖申克的救赎》- 阅后小记
查看>>
Zookeeper系列五:Master选举、ZK高级特性:基本模型
查看>>
关于 DataRow 中为 DataRowState.Deleted 状态的 字段列值取值方法
查看>>
nginx配置解决vue单页面打包文件大,首次加载慢的问题
查看>>
win7方面API學習
查看>>
mongodb 安装
查看>>
BATJ等公司必问的8道Java经典面试题,你都会了吗?
查看>>