大家好,我是IT修真院北京分院第20期的学员王野,一枚正直纯洁善良的程序员
今天给大家分享一下,修真院官网JS任务4,深度思考中的知识点——正则表达式
一、背景介绍
1、什么是正则表达式?
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
2、正则表达式可以用来做什么?
几乎任何编程语言都支持正则表达式;
给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”)可以通过正则表达式,
从字符串中获取我们想要的特定部分。
3、正则表达式的规则
任何字符串都是一个天然的正则表达式,比如“mall”,它可以用来在一篇文章中,搜索出所有的“mall”。
规则的描述的方式也可以用列举,比如:[1,2,5,8],数学上,它就表示这4个数字中的一个,在正则表达式中,可以用“1|2|5|8”来表示。 这则表达式本身只是一个数据集合的描述,必须配合代码才能使用,js原生支持一些匹配正则表达式的方法。
正则表达式引擎,识别正则表达式时有一定的规则,但是现在不必在意。
二、知识剖析
正则表达式的语法:
元字符:用简单的字符代表一个集合:如“\w”代表单词,“^”代表一串字符的开始,“\b”代表单词两边的间隔,等
转译“\”:"d"是个字母,“\d”就表示任何数字,“\\d”被转译两次抵消了,表示“\d”这个两个字符串类型的字符
范围和个数:[]表示范围,如[a-e]表示abcde五个字母中的一个,
{}表示范围,如{3}表示3个,{3,}表示3个及以上,{3,5}表示3个以上,5个及以下
三、常见问题
如何书写正则表达式
使用正则表达式验证邮箱
使用正则表达式验身份证号
四、解决方案
如何写一个正则表达式(6-18之间的一个数字)
开头和结尾:^$
内容:^(\d)|(1\d)$、
限制:^(\d[6-9])|(1\d[0-8])&
在js里的写法
正则表达式也是一个字符串,知识有特定的格式;在js中,字符串的格式是:
/正则表达式正文/,也就是套在//之间。
window.RegExp("^\\b[6-9]$","g")
/^\b[6-9]$/g
js的window.RegExp()方法,用于按照()内的字符串,生成一个正则表达式
实际上,不如直接手写:var reg="/^\b[6-9]$/g"
如何用一个正则表达式
js字符串的.search()方法
其它框架和插件,有利用正则实现不允许输入/提示错误等功能。
邮箱验证和身份证验证:
代码截图五、扩展思考
正则表达式还可以用在哪些地方:
主要就是用在过滤信息和查找信息,其他的方面用的比较少。
六、参考文献
1、大佬日报
2、一篇博客
3、ppt地址
七、更多讨论
类似正则的方法
正确使用正则表达式_腾讯视频
------------------------------------------------------------------------------------------------------------------------
技能树.IT修真院
“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧 !
网友评论