资讯专栏INFORMATION COLUMN

js正则表达式学习笔记

superPershing / 1477人阅读

摘要:分组小括号功能较多有三种功能,作用一,把多带带的项组合成子表达式。作用三,允许后面引用前面的表达式。如果这时的正则表达式是一个非全局的,那么和正则表达式方法拿到的结果相同。,也可以接受一个正则表达式作为参数。

正则表达式创建
字面量创建,a = /abc/gim;
构造函数创建,a = new RegExp("abc","gim")
正则表达式中的特殊字符,
[...] 方括号中的任意字符
[^...] 非方括号中的任意字符
s 空白字符
S 非空白字符
d 数字
D 非数字
w 字母和数字,相当于[a-zA-Z0-9]
W 非字母和数字
重复
{m,n} 介于m到n次之间
{m} 恰好等于m次
{m,} 大于等于m次
? 0次或者1次
* 0次或者n次
+ 1次或者n次
贪婪的匹配
重复的一种,贪婪的匹配即普通的书写方式,尽可能多的匹配;非贪婪的匹配就是尽可能少的匹配,在重复的表示符号后面加上?,例如/a?/,字符串为aaaa,将会匹配第一个a。需要注意的是,/a?b/来匹配aaaab得到的匹配结果是aaaab,而不是ab。
选择
选择通过‘|’来实现,用于分隔供选择的字符。匹配的次序是从左到右,如果左边已经匹配了,就不考虑右边的匹配项了。当然,然后是全局匹配的话可以找出所有的匹配项。
分组
小括号功能较多有三种功能,
1.作用一,把多带带的项组合成子表达式。将一段字符串组成子表达式,例如/java(script)?/就可以用来匹配Java以及JavaScript。
2.作用二,定义子模式,在调用exec方法的时候,返回值的数组第二项开始就是子模式的匹配结果了。
3.作用三,允许后面引用前面的表达式。例如,1引用的是第一个圆括号对应的表达式,2引用的是第二个圆括号对应的表达式。例如要匹配字符串中的子字符串,子字符串的引号应该相同,同为单引号或者同为双引号。在不借助引用的情况下只能这么写,/[""]S[""]/。这样做不到同为单引号或者双引号,可以改为/[""]11/

指明位置
^x 以x为开始
x$ 以x结束
/bjava/ 匹配Java
/Bjava/ 匹配ajava,不匹配Java,因为B表示单词不在这里断
(?=p) 零宽正向断言,后面必须有p,但是不匹配p;这里说的不匹配p意思是通过match函数的返回数组中不包含p,即这里的p只是作为一个条件。例如 /java(?=:)/,它不匹配JavaScript,匹配JavaScript:。
(?!p) 零宽负向断言,后面必须没有p,同时不匹配p。例如/java(?!:)/,它匹配JavaScript,它不匹配JavaScript:。
修饰符
i 忽略大小写
g 全局多次匹配
m 多行匹配
写法实例:/[abc]/gim可以匹配a、b、c、A、B、C。如果字符串有多个,所有的匹配项都可以匹配出来。
/abc$/g,这个表达式至多能匹配出一个匹配项
/abc$/gm,这个表达式可以匹配出多个匹配项,将每次换行都看作是一次结束

正则表达式的方法
这里说的方法,即包括字符串和正则表达式相关的方法,也包括正则表达式自身的方法
字符串的四个方法,
String.search() 查找第一个匹配项的索引
Sring.replace() 第一个参数是正则表达式,如果正则表达式是全局那么将替换掉所有的匹配项
String.match() 得到所有的放回项数组。如果这时的正则表达式是一个非全局的,那么和正则表达式exec()方法拿到的结果相同。
String.split(),也可以接受一个正则表达式作为参数。

regexp有两个方法,分别是exec和test。exec的返回值是一个数组,test的方式值时一个布尔类型。

  • "" ↩

  • 文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

    转载请注明本文地址:https://www.ucloud.cn/yun/99013.html

    相关文章

    • js正则达式学习笔记

      摘要:说来惭愧,做前端快三年对于正则表达式的应用还是很浅薄,大家都知道正则的速度基本上是最快的,但就是懒得去记那些语法和规则,这次项目中多次用到了需要匹配替换的动作,终于下定决心去研究一下了。 说来惭愧,做前端快三年对于正则表达式的应用还是很浅薄,大家都知道正则的速度基本上是最快的,但就是懒得去记那些语法和规则,这次项目中多次用到了需要匹配替换的动作,终于下定决心去研究一下了。 实例化正则对...

      Towers 评论0 收藏0
    • JS正则达式学习笔记2

      摘要:第二阶段该部分内容是学习正则的第二篇内容,点击第一部分查看第一部分的内容。 第二阶段 该部分内容是学习正则的第二篇内容,点击第一部分查看第一部分的内容。 这部分学习的内容包括: 分组 断言 匹配模式(贪婪和懒惰) 分组 我们可以通过量词匹配一个字符多次,但是如果我们想要匹配多个字符多次,就需要用到分组,比如下面一个例子 // 匹配字母和数字连续出现三次的字符 let str = a...

      Ajian 评论0 收藏0
    • 正则达式

      摘要:本文内容共正则表达式火拼系列正则表达式回溯法原理学习正则表达式,是需要懂点儿匹配原理的。正则表达式迷你书问世了让帮你生成和解析参数字符串最全正则表达式总结验证号手机号中文邮编身份证地址等是正则表达式的缩写,作用是对字符串执行模式匹配。 JS 的正则表达式 正则表达式 一种几乎可以在所有的程序设计语言里和所有的计算机平台上使用的文字处理工具。它可以用来查找特定的信息(搜索),也可以用来查...

      bang590 评论0 收藏0
    • JS正则达式学习笔记1

      摘要:正则表达式作为前端学习的一个知识点,是每个合格的前端开发都应该掌握它的用法。元字符一般情况下,正则表达式的一个字符对应字符串的一个字符。 正则表达式作为前端学习的一个知识点,是每个合格的前端开发都应该掌握它的用法。正则表达式的学习确实不难,语法和应用也非常简单,能够快速入门,很轻松的就能写出简单的表达式来对字符串执行某些操作。网上也有标题党说一杯咖啡的时间就能学会。能学会吗?能!但要真...

      wangdai 评论0 收藏0

    发表评论

    0条评论

    最新活动
    阅读需要支付1元查看
    <