正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。下面长沙前端培训班分享:JavaScript正则全面解析:
正则字面量形式let re = /abc/;正则构造函数形式let re = new RegExp(abc);这两种形式都可以创建正则对象,不过他们之间也是有区别的。正则字面量形式虽然写法比较简单,但是没办法做到变量传参,例如:
g修饰符i修饰符m修饰符u修饰符y修饰符s修饰符g修饰符全局匹配,找到所有匹配,而不是第一个匹配成功后就结束。
y修饰符类似于g修饰符,也是全局匹配,后者将从上次匹配成功的下一个位置开始。区别在于, g修饰符只要在余下的位置上存在匹配,而 y修饰符则确保匹配必须从剩下的第一个位置开始,这就是粘连的含义。
s修饰符dotAll模式,匹配任何字符(包括终止符\n)。这个的目的是解决不能匹配终止符的问题。
/foo.bar/s.test(foo\nbar) // true正则基础语法正则除了相关方法和修饰符外,还有很多跟正则相关的语法,先来看看基础语法的使用。
\d 匹配数字\D 匹配非数字\s 匹配空格\S 匹配非空格\w 匹配字符\W 匹配非字符\b 匹配端点\B 匹配非端点数字、空格都比较简单,下面来说说字符,在正则中字符表示的是字母、下划线、数字这三部分,除了这三部分以外的字符表示非字符;在正则中端点表示的是起始、结束、空格这三部分,除了这三部分以外的字符表示非端点。
+ 匹配+字符* 匹配*字符\? 匹配?字符\/ 匹配/字符. 匹配.字符( 匹配(字符[ 匹配[字符{ 匹配{字符\ 匹配字符这些字符在正则中本身就是语法,所以不能进行对应的字符匹配,需要进行转义后方可匹配成功。
let str = abc;let ret = /a[^bde]c/.test(str); // 匹配除了:abc、adc、aec 这几个词以外的词起始与结束有时候需要匹配整体字符串,而不是只匹配字符串的部分,这种情况下就要用到起始和结束了,例如只匹配两位数的正则写法。
正则高级语法除了最基本的正则语法外,还有一些更加高级的使用方式,下面一起看一下。
子项与重复的子项在正则中可以通过()来进行分组,除了分组外,()还有一个很重要的作用就是子项了。子项的含义是匹配到正则匹配到的部分的局部字符。
具名组匹配可以发现子项的排列是根据顺序来决定的,除了顺序外,还可以通过具名的方式进行匹配。允许为每一个组匹配指定一个名字,既便于阅读代码,又便于引用。
具名组匹配等于在每一组匹配中添加ID,便于描述匹配的目的。当更改组顺序时,也不必更改匹配后的处理代码。若该具名组不匹配,则对应的groups对象属性为未定义。
贪婪模式与非贪婪模式贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。非贪婪匹配:就是匹配到结果就好,就少的匹配字符。
前瞻与后顾前瞻与后顾,只把它作为条件,但是不会把它匹配到结果中。相关的语法:
帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线组合 /^[a-zA-Z]\w{4,15}$/
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
宋慧乔大手笔请客《the glory》演员们 车珠英祝贺“东恩和妍珍”
高中教师养出40亿美元超级独角兽,Stable Diffusion数据集创建者
利润暴跌96%之后 三大巨头表态:最坏的日子很快过去 内存SSD不再降价
微软确认Win10 22H2将是其最终版本,Win11 LTSC版本计划明年推出