zoukankan      html  css  js  c++  java
  • JavaScript RegExp 对象

    RegExp 对象

    RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。

    直接量语法

    /pattern/attributes
    

    创建 RegExp 对象的语法:

    new RegExp(pattern, attributes);
    

    参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。

    参数 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。

    返回值

    一个新的 RegExp 对象,具有指定的模式和标志。如果参数 pattern 是正则表达式而不是字符串,那么 RegExp() 构造函数将用与指定的 RegExp 相同的模式和标志创建一个新的 RegExp 对象。

    如果不用 new 运算符,而将 RegExp() 作为函数调用,那么它的行为与用 new 运算符调用时一样,只是当 pattern 是正则表达式时,它只返回 pattern,而不再创建一个新的 RegExp 对象。

    抛出

    SyntaxError - 如果 pattern 不是合法的正则表达式,或 attributes 含有 "g"、"i" 和 "m" 之外的字符,抛出该异常。

    TypeError - 如果 pattern 是 RegExp 对象,但没有省略 attributes 参数,抛出该异常。

    修饰符

    i 执行对大小写不敏感的匹配。

    g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。

    m 执行多行匹配。

    方括号

    方括号用于查找某个范围内的字符:

    表达式 描述

    [abc] 查找方括号之间的任何字符。

    [^abc] 查找任何不在方括号之间的字符。

    [0-9] 查找任何从 0 至 9 的数字。

    [a-z] 查找任何从小写 a 到小写 z 的字符。

    [A-Z] 查找任何从大写 A 到大写 Z 的字符。

    [A-z] 查找任何从大写 A 到小写 z 的字符。

    [adgk] 查找给定集合内的任何字符。

    [^adgk] 查找给定集合外的任何字符。

    元字符

    元字符(Metacharacter)是拥有特殊含义的字符:

    元字符 描述

    . 查找单个字符,除了换行和行结束符。

    <script type="text/javascript">
    var str="That's hot!";
    var patt1=/h.t/g;
    document.write(str.match(patt1));//返回hat,hot 
    </script>
    

    w 查找单词字符。

    W 查找非单词字符。

    d 查找数字。

    D 查找非数字字符。

    量词

    量词 描述

    n+ 匹配任何包含至少一个 n 的字符串。

    n* 匹配任何包含零个或多个 n 的字符串。

    <script type="text/javascript">
    var str="1, 100 or 1000?"; 
    var patt1= /10*/g;
    document.write(str.match(patt1));//返回1,100,1000 对 "1" 进行全局搜索,包括其后紧跟的一个或多个 "0"
    </script>
    

    n? 匹配任何包含零个或一个 n 的字符串。

    n{X} 匹配包含 X 个 n 的序列的字符串。

    n{X,Y} 匹配包含 X 或 Y 个 n 的序列的字符串。

    <script type="text/javascript">
    var str="100, 1000 or 10000?";
    var patt1=/d{3,4}/g; 
    document.write(str.match(patt1));//返回100,1000,1000 对包含三位或四位数字序列的子串进行全局搜索:
    </script>
    

    n{X,} 匹配包含至少 X 个 n 的序列的字符串。

    n$ 匹配任何结尾为 n 的字符串。

    ^n 匹配任何开头为 n 的字符串。

    ?=n 匹配任何其后紧接指定字符串 n 的字符串。

    <script type="text/javascript">
    var str="Is this all there is";
    var patt1=/is(?= all)/;
    document.write(str.match(patt1));//返回is 对其后紧跟 "all" 的 "is" 进行全局搜索:
    </script>
    

    ?!n 匹配任何其后没有紧接指定字符串 n 的字符串。

    RegExp 对象属性

    属性 描述

    lastIndex 一个整数,标示开始下一次匹配的字符位置。

    multiline RegExp 对象是否具有标志

    source 正则表达式的源文本。

    RegExp 对象方法

    方法 描述

    compile 编译正则表达式。

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

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

    <script type="text/javascript">
    var str = "Visit W3School";
    var patt1 = new RegExp("W3School");
    var result = patt1.test(str);
    document.write("Result: " + result);//返回Result: true 
    </script>
    

    支持正则表达式的 String 对象的方法

    方法 描述

    search 检索与正则表达式相匹配的值。

    match 找到一个或多个正则表达式的匹配。

    replace 替换与正则表达式匹配的子串。

    split 把字符串分割为字符串数组。

    RegExp 对象

    RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。

    直接量语法

    /pattern/attributes
    

    创建 RegExp 对象的语法:

    new RegExp(pattern, attributes);参数
    

    参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。

    参数 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。

    返回值

    一个新的 RegExp 对象,具有指定的模式和标志。如果参数 pattern 是正则表达式而不是字符串,那么 RegExp() 构造函数将用与指定的 RegExp 相同的模式和标志创建一个新的 RegExp 对象。

    如果不用 new 运算符,而将 RegExp() 作为函数调用,那么它的行为与用 new 运算符调用时一样,只是当 pattern 是正则表达式时,它只返回 pattern,而不再创建一个新的 RegExp 对象。

    抛出

    SyntaxError - 如果 pattern 不是合法的正则表达式,或 attributes 含有 "g"、"i" 和 "m" 之外的字符,抛出该异常。

    TypeError - 如果 pattern 是 RegExp 对象,但没有省略 attributes 参数,抛出该异常。

    修饰符

    i 执行对大小写不敏感的匹配。

    g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。

    m 执行多行匹配。

    方括号

    方括号用于查找某个范围内的字符:

    表达式 描述

    [abc] 查找方括号之间的任何字符。

    [^abc] 查找任何不在方括号之间的字符。

    [0-9] 查找任何从 0 至 9 的数字。

    [a-z] 查找任何从小写 a 到小写 z 的字符。

    [A-Z] 查找任何从大写 A 到大写 Z 的字符。

    [A-z] 查找任何从大写 A 到小写 z 的字符。

    [adgk] 查找给定集合内的任何字符。

    [^adgk] 查找给定集合外的任何字符。

    元字符

    元字符(Metacharacter)是拥有特殊含义的字符:

    元字符 描述

    . 查找单个字符,除了换行和行结束符。

    <script type="text/javascript">
    var str="That's hot!";
    var patt1=/h.t/g;
    document.write(str.match(patt1));//返回hat,hot 
    </script>
    

    w 查找单词字符。

    W 查找非单词字符。

    d 查找数字。

    D 查找非数字字符。

    量词

    量词 描述

    n+ 匹配任何包含至少一个 n 的字符串。

    n* 匹配任何包含零个或多个 n 的字符串。

    <script type="text/javascript">
    var str="1, 100 or 1000?"; 
    var patt1= /10*/g;
    document.write(str.match(patt1));//返回1,100,1000 对 "1" 进行全局搜索,包括其后紧跟的一个或多个 "0"
    </script>
    

    n? 匹配任何包含零个或一个 n 的字符串。

    n{X} 匹配包含 X 个 n 的序列的字符串。

    n{X,Y} 匹配包含 X 或 Y 个 n 的序列的字符串。

    <script type="text/javascript">
    var str="100, 1000 or 10000?";
    var patt1=/d{3,4}/g; 
    document.write(str.match(patt1));//返回100,1000,1000 对包含三位或四位数字序列的子串进行全局搜索:
    </script>
    

    n{X,} 匹配包含至少 X 个 n 的序列的字符串。

    n$ 匹配任何结尾为 n 的字符串。

    ^n 匹配任何开头为 n 的字符串。

    ?=n 匹配任何其后紧接指定字符串 n 的字符串。

    <script type="text/javascript">
    var str="Is this all there is";
    var patt1=/is(?= all)/;
    document.write(str.match(patt1));//返回is 对其后紧跟 "all" 的 "is" 进行全局搜索:
    </script>
    

    ?!n 匹配任何其后没有紧接指定字符串 n 的字符串。

    RegExp 对象属性

    属性 描述

    lastIndex 一个整数,标示开始下一次匹配的字符位置。

    multiline RegExp 对象是否具有标志

    source 正则表达式的源文本。

    RegExp 对象方法

    方法 描述

    compile 编译正则表达式。

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

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

    <script type="text/javascript">
    var str = "Visit W3School";
    var patt1 = new RegExp("W3School");
    var result = patt1.test(str);
    document.write("Result: " + result);//返回Result: true 
    </script>
    

    支持正则表达式的 String 对象的方法

    方法 描述

    search 检索与正则表达式相匹配的值。

    match 找到一个或多个正则表达式的匹配。

    replace 替换与正则表达式匹配的子串。

    split 把字符串分割为字符串数组。

    RegExp 对象

    RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。

    直接量语法

    /pattern/attributes
    

    创建 RegExp 对象的语法:

    new RegExp(pattern, attributes);参数
    

    参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。

    参数 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。

    返回值

    一个新的 RegExp 对象,具有指定的模式和标志。如果参数 pattern 是正则表达式而不是字符串,那么 RegExp() 构造函数将用与指定的 RegExp 相同的模式和标志创建一个新的 RegExp 对象。

    如果不用 new 运算符,而将 RegExp() 作为函数调用,那么它的行为与用 new 运算符调用时一样,只是当 pattern 是正则表达式时,它只返回 pattern,而不再创建一个新的 RegExp 对象。

    抛出

    SyntaxError - 如果 pattern 不是合法的正则表达式,或 attributes 含有 "g"、"i" 和 "m" 之外的字符,抛出该异常。

    TypeError - 如果 pattern 是 RegExp 对象,但没有省略 attributes 参数,抛出该异常。

    修饰符

    i 执行对大小写不敏感的匹配。

    g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。

    m 执行多行匹配。

    方括号

    方括号用于查找某个范围内的字符:

    表达式 描述

    [abc] 查找方括号之间的任何字符。

    [^abc] 查找任何不在方括号之间的字符。

    [0-9] 查找任何从 0 至 9 的数字。

    [a-z] 查找任何从小写 a 到小写 z 的字符。

    [A-Z] 查找任何从大写 A 到大写 Z 的字符。

    [A-z] 查找任何从大写 A 到小写 z 的字符。

    [adgk] 查找给定集合内的任何字符。

    [^adgk] 查找给定集合外的任何字符。

    元字符

    元字符(Metacharacter)是拥有特殊含义的字符:

    元字符 描述

    . 查找单个字符,除了换行和行结束符。

    <script type="text/javascript">
    var str="That's hot!";
    var patt1=/h.t/g;
    document.write(str.match(patt1));//返回hat,hot 
    </script>
    

    w 查找单词字符。

    W 查找非单词字符。

    d 查找数字。

    D 查找非数字字符。

    量词

    量词 描述

    n+ 匹配任何包含至少一个 n 的字符串。

    n* 匹配任何包含零个或多个 n 的字符串。

    <script type="text/javascript">
    var str="1, 100 or 1000?"; 
    var patt1= /10*/g;
    document.write(str.match(patt1));//返回1,100,1000 对 "1" 进行全局搜索,包括其后紧跟的一个或多个 "0"
    </script>
    

    n? 匹配任何包含零个或一个 n 的字符串。

    n{X} 匹配包含 X 个 n 的序列的字符串。

    n{X,Y} 匹配包含 X 或 Y 个 n 的序列的字符串。

    <script type="text/javascript">
    var str="100, 1000 or 10000?";
    var patt1=/d{3,4}/g; 
    document.write(str.match(patt1));//返回100,1000,1000 对包含三位或四位数字序列的子串进行全局搜索:
    </script>
    

    n{X,} 匹配包含至少 X 个 n 的序列的字符串。

    n$ 匹配任何结尾为 n 的字符串。

    ^n 匹配任何开头为 n 的字符串。

    ?=n 匹配任何其后紧接指定字符串 n 的字符串。

    <script type="text/javascript">
    var str="Is this all there is";
    var patt1=/is(?= all)/;
    document.write(str.match(patt1));//返回is 对其后紧跟 "all" 的 "is" 进行全局搜索:
    </script>
    

    ?!n 匹配任何其后没有紧接指定字符串 n 的字符串。

    RegExp 对象属性

    属性 描述

    lastIndex 一个整数,标示开始下一次匹配的字符位置。

    multiline RegExp 对象是否具有标志

    source 正则表达式的源文本。

    RegExp 对象方法

    方法 描述

    compile 编译正则表达式。

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

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

    <script type="text/javascript">
    var str = "Visit W3School";
    var patt1 = new RegExp("W3School");
    var result = patt1.test(str);
    document.write("Result: " + result);//返回Result: true 
    </script>
    

    支持正则表达式的 String 对象的方法

    方法 描述

    search 检索与正则表达式相匹配的值。

    match 找到一个或多个正则表达式的匹配。

    replace 替换与正则表达式匹配的子串。

    split 把字符串分割为字符串数组。

  • 相关阅读:
    yzoj P2344 斯卡布罗集市 题解
    yzoj P2350 逃离洞穴 题解
    yzoj P2349 取数 题解
    JXOI 2017 颜色 题解
    NOIP 2009 最优贸易 题解
    CH 4302 Interval GCD 题解
    CH4301 Can you answer on these queries III 题解
    Luogu2533[AHOI2012]信号塔
    Luogu3320[SDOI2015]寻宝游戏
    Luogu3187[HNOI2007]最小矩形覆盖
  • 原文地址:https://www.cnblogs.com/rwalker/p/5517169.html
Copyright © 2011-2022 走看看