RegExp——正则表达式

正则表达式(RegExp )


创建

  • RegExp构造函数

    var re = new RegExp("a");
    
  • 使用字面量(常用)

    var re = /a/;
    

方法

  • test()

    参数:需要匹配模式的字符串

    返回值:匹配成功返回true,否则返回false

  • exec()

    参数:需要匹配模式的字符串

    返回值:匹配成功返回一个以每个匹配成功的字符串组成的类数组集合,否则返回null

    方法属性:index 表示匹配项在字符串中的位置、input 表示原字符串

匹配规则

字面量字符

在正则表达式中,某个字符只表示它字面的含义,比如/a/匹配a

元字符

除字面量字符以外,还有一部分字符有特殊含义,不代表字面意思,叫“元字符”。如果要匹配他们本身,需要在它们前面加上反斜杠进行转义,比如匹配加号,就要写成+

正则中需要用斜杠转义的字符

^.[]$()|*+?{}\\

如果使用RegExp方法生成正则对象,转义需要使用两个斜杠,因为字符串内部会先转义一次

  • 点字符

    .: 匹配除回车\r、换行\n、行分隔符\u2028、段分隔符\u2029以外的所有字符

  • 位置字符

    ^:表示字符串的开始位置

    $:表示字符串的结束位置

  • 竖线字符

    |:在正则中表示“或关系”即a|b表示匹配ab

重复类

模式的精确匹配次数

  • {n}:恰好重复n次

  • {n,}:至少重复n次

  • {n,m}:重复不少于n次,不多于n次

量词符

  • ?:表示某个模式出现01次,等同{0,1} 最多1次
  • *:表示某个模式出现0次,等同{0,} 无影响
  • +:表示某个模式出现1次,等同{1,} 至少1次

字符类

表示有一系列字符可供选择,只要匹配其中一个就可以,所有可供选择的字符都放在方括号内,eg:[abc]表示abc之中任选一个匹配

  • ^脱字符:如果方括号内第一个字符是[^],则表示除了字符类中的字符,其他字符都可以匹配,eg:[^abc]表示除了abc之外的都可以匹配

  • -连字符:对于连续序列的字符,连字符用来提供简写形式,表示字符的连续范围,eg:[abc]可以写成[a-c][0123456789]可以写成[0-9][A-Z]表示26个大写字母

  • 中文 [\u4e00-\u9fa5]

修饰符(模式修正符)

修饰符表示模式的附加规则,放在正则模式的最尾部,修饰符可以单个使用,也可以多个一起使用

  • g 默认情况下,第一次匹配成功后,正则对象就停止向下匹配,g修饰符表示全局匹配
  • i 默认情况下,正则对象区分字母的大小写,加上i修饰符以后表示忽略大小写
  • m 表示多行模式,会修改和$的行为,默认情况下,^和$匹配字符串的开始处和结尾处,加上m修饰符后,和$会识别换行符\n

预定义模式

指某些常见模式的简写方式

  • \d:匹配0-9之间的任一数字,相当于[0-9]
  • \D:匹配所有0-9以外的字符,相当于[^0-9]
  • \w:匹配任意的字母、数字和下划线,相当于[A-Za-z0-9_]
  • \W:除所有字母,数字和下划线以外的字符,相当于[^A-Za-z0-9_]
  • \s:匹配空格,包括制表符、空格符、断行符等
  • \S:匹配非空格的字符
  • \b:匹配单词的后边界
  • \B:匹配非单词边界

特殊字符

  • [\b]:匹配退格键
  • \n:匹配换行键
  • \r:匹配回车键
  • \f:匹配换页符
  • \t:查找制表符

组匹配

正则表达式的括号表示分组匹配,括号中的模式可以用来匹配分组内容

var str = 'abcdef';
var reg = /[(abc)(def)]/;
str.match(reg); // ['a','b','c']

匹配方法

字符串.方法(正则)

  • match():接受一个参数,正则去匹配字符串,如果匹配成功,就返回匹配成功的数组,如果匹配不成功,就返回null

  • search():参数与match相同,返回字符串中第一个匹配项的索引,没有匹配项返回-1

  • replace():用于替换,接受两个参数,第一个是匹配项,第二个是字符串或是一个函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值