加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 RegExp

发布时间:2020-12-14 06:16:00 所属栏目:百科 来源:网络整理
导读:正则表达式 :即使用模式匹配文本字符串的表达式。 ? ? ?在JavaScript中, 创建正则表达式 有两种方式:? 字面量方法: var expression=/pattern/flags; //斜线类似于字符串中的双引号,作用:分隔。 创建RegExp对象实例: var expression= new RegExp(“tes
  • 正则表达式:即使用模式匹配文本字符串的表达式。

? ? ?在JavaScript中,创建正则表达式有两种方式:?

  1. 字面量方法:   var expression=/pattern/flags;     //斜线类似于字符串中的双引号,作用:分隔。
  2. 创建RegExp对象实例:  var expression=new RegExp(“test”);     //传入正则表达式字符串。

    注意:优先使用字面量语法,当需要在运行时动态创建字符串来构建正则表达式时,使用构造函数方法。?

? ? ? ? ?匹配模式支持5种修饰符:(在字面量末尾添加修饰符,或者作为第2 个参数传给RegExp构造函数)

  1. g(全局模式):模式将应用于所有字符串,而非发现第一个匹配项后停止。
  2. i(不区分大小写模式):在确定匹配项时忽略模式与字符串的大小写。
  3. m(多行模式):到达一行文本末尾还会继续查找下一行中是否存在与模式匹配的项。
  4. y:开启粘连匹配。
  5. u:允许使用Unicode点转义符。

? ? ? ? ?正则表达式就是模式和3个标志的组合体。

  • 术语和操作符
  • 精准匹配
  • 匹配字符集? ?[ ]

    ?? [^abc]:匹配除a,b,c以外的任意字符。

? ? ? ? ? ? ?[abc]:匹配a,c中的任意一个字符。

? ? ? ? ? ? ?[a-z]:中横线 表示按字母顺序从a到z之间所有字符的集合。

  • 转义

? ? ? ?当操作符想要表达它本身时,例如[],^等,使用匹配。? ? ? ??

  • 起止符号

? ? ? ?()表示匹配字符串的开始,^表示以后面的字符串开头,$表示字符串的结束。

  • 重复出现

? ? ? ? ?? 在字符串后添加,指定可选字符可以出现0次或1次。

? ? ? ? +? ?在字符串后添加,指定可选择符可以出现1次或多次。

? ? ? ? *? ? 在字符串后添加,指定可选择符可以出现0次或1次或多次

? ? ? ?{}? ? 使用括号指定重复次数。如:/a{4}/匹配4个连续的字符a。

? ? ? ?{4,10}? 指定重复次数的范围。

? ? ? ?{4,}? ?匹配4个或更多的连续字符。

  • 预定义字符集

? ? ? ?t? ?水平制表符? ? ? b? 空格? ? ? ?f制页符? ? ? ? r回车符? ? n换行符? ? ?.匹配除换行符之外的任意字符? ? d匹配任意十进制字符? ? ? ? D匹配除了十进制数字外的任意字符。

? ? ? ?w 匹配任何字母,数字和下划线? ???W 匹配任何除了字母,数字和下划线之外的字符? ? ? ?s 匹配任何空白字符? ? ? ?S 匹配除空白字符外的任意字符? ? ?b匹配单词边界? ?B匹配非单词边界??

  • 或操作符(OR)

? ? ?使用竖线 |? 表示或。可以匹配a或b :/a|b/。??

  • RegExp 对象方法(正则表达式在前,字符串为参数
  • RegExp 对象有 3 个方法:test()、exec()、 compile()。
  1. exec():专门为捕获组而设计的。返回值包含:第一个匹配项信息的数组(在没有匹配项的情况下返回null),数组包含两个属性:index和input。index表示匹配项出现在字符串中的位置,input表示应用正则表达式的字符串。??
    1     var expression=/e/g;
    2     var str="the best thing in life is free";
    3     console.log(expression.exec(str));

    ?

  2. test() 方法检索字符串中的指定值。返回值是 true 或 false。
    1     var expression=/e/g;
    2     var str="the best thing in life is free";
    3     console.log(expression.test(str));  //true

    ?

  3. compile() 方法用于改变 RegExp。compile() 既可以改变检索模式,也可以添加或删除第二个参数。
  • 正则表达式的String对象方法(字符串在前? ?正则表达式为参数):
  • string对象方法:search(),match(),replace(),split().??
  1. search():检索与正则表达式相匹配的值。 返回值:stringObject 中第一个与 regexp 相匹配的子串的起始位置。
    stringObject.search(regexp)

    ?

  2. match():找到一个或多个正则表达式的匹配。?返回值:存放匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g。
    1 stringObject.match(searchvalue)
    2 stringObject.match(regexp)
  3. replace():替换与正则表达式匹配的子串。返回值:一个新的字符串。经过替换后的字符串。
    stringObject.replace(regexp/substr,replacement)
  4. split():把字符串分割为字符串数组。seperator :字符串或正则表达式,从该参数指定的地方分割 stringObject。
    stringObject.split(separator,howmany)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读