正则的使用心得

以前使用正则是不会自己去学或者去了解怎么实现正则的语法的,感觉好难懂的样子,于是拖到现在

其实正则不是我想象中的那么难,至少入门还是比较简单。我刚学习了一些比较简单的,谈谈我对正则的理解以及使用心得,希望能帮助大家

1、学习正则的话 ,正则手册必须看的,了解常用的字符含义,这样在学习或看或写的时候,才不会觉得(哇,这什么鬼啊,为什么这么多括号中括号大括号, 这一串串的真是是规则吗?会不会是别人乱写的。)

2、大致看了一下手册了之后,我觉得应该看一下关于正则教程的视频,图文音并茂,这样才更容易让人理解这是什么东西,然后跟着做一下。

3、看了视频了解简单的正则简单的写法就可以写一下简单的规则了。比如说验证日期、价格、年龄等,这些都是项目比较常用的且简单的正则验证。

最后我举一个简单的例子

QQ号的验证:

1、首先,要写验证的话,就必须了解你验证的这个有什么样子的规则。

QQ号是大多数人的青春,我相信绝大多数人都比较熟悉,那么它的规则估计并不是所有人都清除。

首先,腾讯刚开始发布QQ号的时候是从1开始的,也就是世界上第一个QQ号是1。但是为了安全等等原因,腾讯收回了4位数及更少的QQ号码,只留下了10000开始的QQ号,所以腾讯的QQ号最小是10000,最大位置,也就是说只要比10000大的数字都可以。再者,QQ号有了一个最小数,那是不是用QQ号>10000就是QQ号了呢?比如:QQ号>10000。

其实不然,因为n个0加上10000+也是大于10000的,比如00010001,但是这个数字不是QQ号。所以第一个数字不能为0,这就是QQ号的所有规则了,是不是很简单。(不好意思,废话多了)

2、写规则

既然我们知道了规则,就是开始写规则了,规则拆开写,三个规则,第一:QQ号必须是数字组成,第二:第一个数字不为0且是一位数,取值范围1-9,第三,QQ号位数至少是五位数。

[1-9]:[]表示一个字符的一个范围,1-9表示只能取大于等于1,小于等于9的数字。

[0-9]:因为第二个数字开始,数字就可以取值为0了,所以取值0-9

{4,}:{}表示长度,可取两个值,第一个是最小长度(必填,非负数),第二个是最大长度(选填),中间用逗号隔开,第二个不填表示无上限。QQ号为5位数,所以第一位后面需要至少有4个数字。

最后连起来就是[1-9][0-9]{4,}。如果只是验证某一个参数是不是QQ号,就需要规定什么时候开始什么时候结束,不然只要一串字符串里面连起来有符合规则的都会通过。

正则中 ^ 表示开始, $ 表示结束,为了验证某一个参数是不是QQ号,最后规则为: ^[1-9][0-9]{4,}$   ,表示这个参数里面必须以1-9的数字开头,以0-9的数字结尾,否则通不过验证。

最后  \d 等价与  [0-9] ,规则也可以写成 ^[1-9]\d{4,}$

总结:正则验证十分强大,入门简单,适用于各种语言,多学一点,后面少苦恼一点。勤学苦练,终能成大事,希望各位一起学习、进步。

我是刚入门不久的前端工程师,内容写的可能不是那么精简、清楚,我会慢慢改进排版以及内容,希望各位多多指点,多多支持,谢谢

(ps: 如果有刚加入前端这个行业的,比较迷茫的同学,欢迎进群交流,希望不嫌弃的同行或者大佬加群大家一起交流,相信未来会更好,群号:815957915)

原文地址:https://www.cnblogs.com/Simple-and-complex/p/10348762.html

时间: 2024-10-07 21:55:47

正则的使用心得的相关文章

Vim正则通配符使用心得

目的 实现替换 c f[i][j][k] -> f[k][i][j] f[i + 1][j][k] -> f[k][i + 1][j] f[i + 1][j + NY][k] -> f[k][i + 1][j + NY] 实现方法 :%s/\[k\]\(\[.\{,6}\]\)\(\[.\{,6}\]\)/\1\2\[k\]/g

正则性能调优

这篇文章主要是分享最近在开发中正则的学习心得体会.我们开发,一开始是采用python的正则库,后来为了适应Spring Cloud兼容Java所以正则也相应的修改成为了Java版本,经过测试,Java在匹配速度上相对慢了好多,平台一天需要处理一亿多条日志,但按照当时的处理速度,每天差不多就只能处理了2千多万条,这样的速度,实在扎心,提单申请扩容,那边的负责人说资源不足,好咯,将Java所使用的正则库替换成C++,C++够快了吧,不过,这个库是通过牺牲功能换取性能来实现的. 正则表达式的原理 理论

JavaScript正则表达式快速判断技巧

原文:JavaScript正则表达式快速判断技巧 这里是JS的正则的一点心得,并不是最完整的规则汇总,更侧重实际运用中的快速判断,初学者接触正则之后往往会被一堆星号括号给弄晕,有了一些速判技巧就能从整体上把握从而不慌乱. JS正则快速判断技巧的核心就是:注意圆括号和问号.这已经能够应付大部分实际应用了. 一.圆括号 众所周知,正则中中括号表示范围,大括号表示重复次数,圆括号表示分组. 圆括号表示分组,但是分组内还有很多文章,细分一下: (1):圆括号本身表示分组,同时会保存匹配的项,这叫捕获性分

python 爬虫抓取心得

quanwei9958 转自 python 爬虫抓取心得分享 urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quote('要编码的字符串') query = urllib.quote(singername) url = 'http://music.baidu.com/search?key='+query response = urllib.urlopen(url) text = response.read()

C#-正则,常用几种数据解析-端午快乐

在等待几个小时就是端午节了,这里预祝各位节日快乐. 这里分享的是几个在C#中常用的正则解析数据写法,其实就是Regex类,至于正则的匹配格式,请仔细阅读正则的api文档,此处不具体说明,谢谢. 开始吧: 1.查询是否存在“订单号”数据的字符串 1 //匹配对象 2 var expl = "[{\"订单号\":2006,\"价格\":888.90,\"下单时间\":\"2016-06-08 17:01\",\"

我的MYSQL学习心得(七)

我的MYSQL学习心得(七) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYSQL学习心得(五) 我的MYSQL学习心得(六) 在这个<我的MYSQL学习心得>系列里面,我一直都把MYSQL跟SQLSERVER进行比较,相互进行比较是学习一样东西比较好的方法 比较出大家的异同点,从而加深记忆 这一篇<我的MYSQL学习心得(七)>也是一样,相同的地方略略带过,不同的地方我会给出例子,谢谢大家的支持o(

字符串转换为日期时间类型及正则式拾遗

菜鸟D最经在给项目写报文接口文件,不要理解错误啊,其实只是拼报文,解析报文.拼报文的过程没有什么难度,此处只需要注意重构就好,报文一般都是有通用的格式的,例如报文是xml格式的,这时候要多对比不同报文的差异,尽量减少重复代码.重构的最大目的在于即使代码发生更改,不必嵌入太深. 好了,废话完了,在解析报文时,遇到了一个“yyyyMMddHHmmss”格式的字符串需要转换为DateTime类型,菜鸟D理所当然的用了Convert.ToDateTime(),由于初时并不知道获取到的是一个怎样的字符串,

我的MYSQL学习心得(七) 查询

在这个<我的MYSQL学习心得>系列里面,我一直都把MYSQL跟SQLSERVER进行比较,相互进行比较是学习一样东西比较好的方法 比较出大家的异同点,从而加深记忆 这一篇<我的MYSQL学习心得(七)>也是一样,相同的地方略略带过,不同的地方我会给出例子,谢谢大家的支持o(∩_∩)o 这一节主要介绍MYSQL里的基本查询(MYSQL官方参考手册) MySQL中select的基本语法形式: select 属性列表 from 表名和视图列表 [where 条件表达式] [group

web.py学习心得

1.注意判断数字时,如果是get传递的参数,一定要用int转换.不然出错. 2.$var 定义时,冒号后的内容不是python内容,需加上$符号.如$var naviId:$naviId. 3.各个模板中的变量,要对应一致.在用base布局时,整个模板内容为layout模板的content,模板内定义的变量x(模板变量),在layout模板内用content.x 引用. ----------------------------------  网络上搜索的其他faq  --------------