• js进阶正则表达式13RegExp对象方法(RegExp对象的方法:compile,test,exec)(子表达式 var reg1=/([a-z]+)d/)


    js进阶正则表达式13RegExp对象方法(RegExp对象的方法:compile,test,exec)(子表达式 var reg1=/([a-z]+)d/

    一、总结

    1、RegExp对象有三个方法:compile(编译正则表达式),test(检索字符串中指定的值),exec(检索字符串中指定的值)(和string对象的match有点类似) 。

    2、子表达式:分组的表达式,也就是小括号括起来的表达式,var reg1=/([a-z]+)d/ 其中([a-z]+)就是字表达式

    二、js进阶正则表达式13RegExp对象方法

    RegExp 对象方法

    • compile 编译正则表达式。

      compile 方法将正则表达式转换为内部的格式,从而执行得更快。例如,这允许在循环中更有效地使用正则表达式。当重复使用相同的表达式时,编译过的正则表达式使执行加速。

    • test 检索字符串中指定的值。返回 true 或 false。

      语法:RegExpObject.test(string)

      如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。

    • exec 检索字符串中指定的值。返回找到的值,并确定其位置。

      如果 exec 方法没有找到匹配,将返回 null。如果找到匹配项,则 exec 方法返回一个数组

      数组元素 0 包含了完整的匹配项,而元素 1 到 n 包含的是匹配项中出现的任意一个子匹配项。

      除了数组元素和 length 属性之外,exec() 方法还返回两个属性。index 属性声明的是匹配文本的第一个字符的位置。input 属性则存放的是被检索的字符串 string。在调用非全局的 RegExp 对象的 exec() 方法时,返回的数组与调用方法 String.match() 返回的数组是相同的。

      当 RegExpObject 是一个全局正则表达式时,exec() 会在 RegExpObject 的 lastIndex 属性指定的字符处开始检索字符串 string。当 exec() 找到了与表达式相匹配的文本时,在匹配后,它将把 RegExpObject 的 lastIndex 属性设置为匹配文本的最后一个字符的下一个位置

    三、代码

     1 <!DOCTYPE html>
     2 <html lang="zh-cn">
     3 <head>
     4   <meta charset="utf-8">
     5   <title>课堂演示</title>
     6   <style type="text/css">
     7   li{
     8       font-size: 20px;
     9       width: 500px;
    10       background: rgba(0,180,80,0.3);
    11       padding: 10px;
    12       margin: 10px;
    13     }
    14   </style>
    15 </head>
    16 <body>
    17 <hr>
    18 
    19   <script type="text/javascript"> 
    20     //exec与match的区别
    21     //1.exec是正则表达式的方法,而不是字符串的方法,它的参数才是字符串
    22     //2.当正则表达式无子表达式,并且定义为非全局匹配时,exec和match执行的结果是一样,均返回第一个匹配的字符串内容;
    23     //3.当正则表达式无子表达式,并且定义为全局匹配时,exec和match执行,做存在多处匹配内容,则match返回的是多个元素数组
    24     //4.当正则表达式有子表达式时,并且定义为全局匹配,exec和match执行的结果不一样,此时match将忽略子表达式,只查找全匹配正则表达式并返回所有内容
    25     //5.当正则表达式有子表达示时,并且定义为非全局匹配,exec和match执行的结果是一样;
    26     //exec与全局是否定义无关系,而match则于全局相关联,当定义为非全局,两者执行结果相同
    27 /*
    28     var str="00css3 HTML5"
    29     var reg=/w+/g
    30     var reg1=/([a-z]+)d/  //1、子表达式
    31     document.write('<ol>')   
    32       document.write('<li>'+'原字符串:'+str
    33         +'<li>'+str.match(reg)
    34         +'<li>'+reg.exec(str)  //2、regexp对象的exec方法
    35         +'<li>'+str.match(reg1)
    36         +'<li>'+reg1.exec(str)
    37          +'<li>'+reg1.exec(str).index+'<br/>'+reg1.exec(str).input
    38 
    39 
    40       )
    41     document.write('</ol>')
    42     */
    43     var str='HTML5 HTML5 HTML5 HTML5'
    44     var reg=/html5/gi
    45     // reg.test(str)
    46     // reg.test(str)
    47     //reg.lastIndex=5
    48     reg.exec(str)
    49     //reg.exec(str)
    50     alert(reg.lastIndex)
    51   </script>
    52 </body>
    53 </html>
  • 相关阅读:
    DataGridView 复选框 操作大全
    ClickOnce 创建桌面快捷方式
    测量程序经过的时间
    C# Js 时间格式化问题
    MVC 漫长之路(一)
    SQL 查一年内的数据
    DataRow对象的RowState和DataRowVersion属性特点
    iOS打开百度地图、高德地图导航
    NSURLCache 和 NSCache 的区别
    MagicalRecord的使用(第三方库实现的数据库)
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9094799.html
Copyright © 2020-2023  润新知