• js正则表达式1


    知识转自阮一峰老师的教程

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <!--新建正则两种方式-->
    <!--var reg=/d/-->
    <!--var reg=new RegExp('d')-->
    <!--两者的区别在于一个是编译时创建,-->
    <!--一个是运行时创建-->
    <!--际应用中,基本上都采用字面量的写法。-->
    
    <!--正则对象生成以后,有两种使用方式:-->
    <!--正则对象的方法:将字符串作为参数,比如regex.test(string)。-->
    <!--字符串对象的方法:将正则对象作为参数,比如string.match(regex)。-->
    
    </body>
    <script>
    //    正则对象的属性和方法
    //正则对象的属性分成两类。
    
    //一类是修饰符相关,返回一个布尔值,表示对应的修饰符是否设置。
    //ignoreCase:返回一个布尔值,表示是否设置了i修饰符,该属性只读。
    //global:返回一个布尔值,表示是否设置了g修饰符,该属性只读。
    //multiline:返回一个布尔值,表示是否设置了m修饰符,该属性只读。
        var r=/abc/igm;
        console.log(r.ignoreCase,r.global,r.multiline) //true  true true
    
    //另一类是与修饰符无关的属性,主要是下面两个。
    //lastIndex:返回下一次开始搜索的位置。该属性可读写,但是只在设置了g修饰符时有意义。
    //source:返回正则表达式的字符串形式(不包括反斜杠),该属性只读。
        console.log(r.source);//abc
    //
    //    方法:
    //test()
    //正则对象的test方法返回一个布尔值,表示当前模式是否能匹配参数字符串。
    //var r = /x/g;
    //var s = '_x_x';
    //
    //r.lastIndex = 4;
    //r.test(s) // false
    //如果正则模式是一个空字符串,则匹配所有字符串。
    //new RegExp('').test('abc')
    // true
    //如果正则表达式带有g修饰符,则每一次test方法都从上一次结束的位置开始向后匹配。
    //var r = /x/g;
    //var s = '_x_x';
    //
    //r.lastIndex // 0
    //r.test(s) // true
    //
    //r.lastIndex // 2
    //r.test(s) // true
    //
    //r.lastIndex // 4
    //r.test(s) // false
    
    //exec()
    //正则对象的exec方法,可以返回匹配结果。如果发现匹配,就返回一个数组,成员是每一个匹配成功的子字符串,否则返回null。
    //    var reg=/ab/;
    //    var reg1=/bc/;
    //    var str="abcdef";
    //    console.log(reg.exec(str),reg1.exec(str))
    
    //如果正则表示式包含圆括号(即含有“组匹配”),则返回的数组会包括多个成员。
    //第一个成员是整个匹配成功的结果,后面的成员就是圆括号对应的匹配成功的组。
    //也就是说,第二个成员对应第一个括号,第三个成员对应第二个括号,以此类推。
    //整个数组的length属性等于组匹配的数量再加1。
    //var s = '_x_x';
    //var r = /_(x)/;
    //
    //r.exec(s) // ["_x", "x"]
    
    //exec方法的返回数组还包含以下两个属性:
    //
    //input:整个原字符串。
    //index:整个模式匹配成功的开始位置(从0开始计数)。
    //var r = /a(b+)a/;
    //var arr = r.exec('_abbba_aba_');
    
    //arr // ["abbba", "bbb"]
    //
    //arr.index // 1
    //arr.input // "_abbba_aba_"
    
    
    //字符串对象的方法
    //match():返回一个数组,成员是所有匹配的子字符串。
    //search():按照给定的正则表达式进行搜索,返回一个整数,表示匹配开始的位置。
    //replace():按照给定的正则表达式进行替换,返回替换后的字符串。
    //split():按照给定规则进行字符串分割,返回一个数组,包含分割后的各个成员。
    
    //macth方法
    //var s = 'abba';
    //var r = /a/g;
    //s.match(r) // ["a", "a"]
    //r.exec(s) // ["a"]
    //如果正则表达式带有g修饰符,则该方法与正则对象的exec方法行为不同,会一次性返回所有匹配成功的结果。
    
    //serch()方法
    //var r=/.x/;
    //    var str="pl.x";
    //    console.log(str.search(r));//2
    //字符串对象的search方法,返回第一个满足条件的匹配结果在整个字符串中的位置。如果没有任何匹配,则返回-1。
    
    //    replace()方法
    //字符串对象的replace方法可以替换匹配的值。它接受两个参数,第一个是搜索模式,第二个是替换的内容。
    //    replace(s1,s2);
    //'aaa'.replace('a', 'b') // "baa"
    //'aaa'.replace(/a/, 'b') // "baa"
    //'aaa'.replace(/a/g, 'b') // "bbb"
    
    //replace方法的一个应用,就是消除字符串首尾两端的空格。
    //var str = '  #id div.class  ';
    //
    //    console.log(str.replace(/^s+|s+$/g, ''))
    //replace方法的第二个参数可以使用美元符号$,用来指代所替换的内容。
    //$& 指代匹配的子字符串。
    //$` 指代匹配结果前面的文本。
    //$' 指代匹配结果后面的文本。
    //$n 指代匹配成功的第n组内容,n是从1开始的自然数。
    //$$ 指代美元符号$。
    
    
    //    split()方法
    //字符串对象的split方法按照正则规则分割字符串,返回一个由分割后的各个部分组成的数组。
    // 非正则分隔
    //'a,  b,c, d'.split(',')
    //// [ 'a', '  b', 'c', ' d' ]
    //
    //// 正则分隔,去除多余的空格
    //'a,  b,c, d'.split(/, */)
    //// [ 'a', 'b', 'c', 'd' ]
    //
    //// 指定返回数组的最大成员
    //'a,  b,c, d'.split(/, */, 2)
    //        [ 'a', 'b' ]
    </script>
    </html>
  • 相关阅读:
    MAC subline批处理
    Git 所有常用命令
    【React入门】React父子组件传值demo
    【fullGC】内存监控工具
    【dockerFile配置jvm 启动参数】dockerFile 参数解释
    【总结】程序人生,每天进步一点点,以及曾经的梦想
    【记录】Field required a single bean, but 2 were found:
    【maven 】jar包冲突-记一次冲突解决
    PAT甲题题解-1052. Linked List Sorting (25)-排序
    PAT甲题题解-1053. Path of Equal Weight (30)-dfs
  • 原文地址:https://www.cnblogs.com/joesbell/p/6070091.html
Copyright © 2020-2023  润新知