• js正则


    简介
    修饰符

    修饰符用于执行区分大小写和全局匹配:

    修饰符

    描述

    i

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

    g

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

    m

    执行多行匹配。

    方括号

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

    表达式

    描述

    [abc]

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

    [^abc]

    查找任何不在方括号之间的字符。

    [0-9]

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

    [a-z]

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

    [A-Z]

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

    [A-z]

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

    [adgk]

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

    [^adgk]

    查找给定集合外的任何字符。

    (red|blue|green)

    查找任何指定的选项。

    元字符

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

    元字符

    描述

    .

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

    w

    查找单词字符。

    W

    查找非单词字符。

    d

    查找数字。

    D

    查找非数字字符。

    s

    查找空白字符。

    S

    查找非空白字符。

    

    匹配单词边界。

    B

    匹配非单词边界。

    查找 NULL 字符。

    查找换行符。

    f

    查找换页符。

    查找回车符。

    查找制表符。

    v

    查找垂直制表符。

    xxx

    查找以八进制数 xxx 规定的字符。

    xdd

    查找以十六进制数 dd 规定的字符。

    uxxxx

    查找以十六进制数 xxxx 规定的 Unicode 字符。

    量词

    量词

    描述

    n+

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

    例如,/a+/ 匹配 "candy" 中的 "a","caaaaaaandy" 中所有的 "a"。

    n*

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

    例如,/bo*/ 匹配 "A ghost booooed" 中的 "boooo","A bird warbled" 中的 "b",但是不匹配 "A goat grunted"。

    n?

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

    例如,/e?le?/ 匹配 "angel" 中的 "el","angle" 中的 "le"。

    n{X}

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

    例如,/a{2}/ 不匹配 "candy," 中的 "a",但是匹配 "caandy," 中的两个 "a",且匹配 "caaandy." 中的前两个 "a"。

    n{X,}

    X 是一个正整数。前面的模式 n 连续出现至少 X 次时匹配。

    例如,/a{2,}/ 不匹配 "candy" 中的 "a",但是匹配 "caandy" 和 "caaaaaaandy." 中所有的 "a"。

    n{X,Y}

    X 和 Y 为正整数。前面的模式 n 连续出现至少 X 次,至多 Y 次时匹配。

    例如,/a{1,3}/ 不匹配 "cndy",匹配 "candy," 中的 "a","caandy," 中的两个 "a",匹配 "caaaaaaandy" 中的前面三个 "a"。注意,当匹配 "caaaaaaandy" 时,即使原始字符串拥有更多的 "a",匹配项也是 "aaa"。

    n{X,}

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

    n$

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

    ^n

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

    ?=n

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

    ?!n

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

    RegExp 对象方法

    方法

    描述

    FF

    IE

    compile

    编译正则表达式。

    1

    4

    exec

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

    1

    4

    test

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

    1

    4

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

    方法

    描述

    FF

    IE

    search

    检索与正则表达式相匹配的值。返回下标,找不到返回-1

    1

    4

    match

    找到一个或多个正则表达式的匹配。返回数组,与g有关,不匹配返回null

    1

    4

    replace

    替换与正则表达式匹配的子串。返回替换后的字符串

    1

    4

    split

    把字符串分割为字符串数组。返回数组

       
    RegExp对象
    语法

    var patt=new RegExp(pattern,modifiers);

    或者更简单的方式:

    var patt=/pattern/modifiers;

    • pattern(模式) 描述了表达式的模式
    • modifiers(修饰符) 用于指定全局匹配、区分大小写的匹配和多行匹配
      • 修饰符用于执行区分大小写和全局匹配:

    修饰符

    描述

    i

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

    g

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

    m

    执行多行匹配。

    注意:当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 )。比如,以下是等价的:

    var re = new RegExp("\w+");
    var re = /w+/;
    test()方法

    test()方法

    语法

    RegExpObject.test(string)

    参数

    描述

    string

    必需。要检测的字符串。

    列子

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

    var s = new RegExp("bc");

             document.write(s.test("abcdefg"));//true

             document.write(s.test());//false

      document.write("<br>----------------------");

                var s2 = /d+/;

                document.write(s2.test("abcdef12"));//true

                document.write(s2.test("abcdef"));//false

    exec()方法

    exec() 方法用于检索字符串中的正则表达式的匹配。

    如果字符串中有匹配的值返回该匹配值,否则返回 null。

    语法

    RegExpObject.exec(string)

    var reg3 = new RegExp("b");

                document.write(reg3.exec("abc"));//b

                document.write(/hello/g.exec("hello chenrd"));//hello

                document.write(/hello/g.exec(" chenrd"));//null

    compile 方法

    把正则表达式编译为内部格式,从而执行得更快。

    rgExp.compile(pattern, [flags])

    参数

    rgexp

    必选项。正则表达式对象的一个例子。可以是变量名或文字。

    pattern

    必选项。字符串表达式,它包含要被编译的正则表达式模式。

    flags

    可选项。可以组合使用,可用的标志有:

    • g (全局搜索所有存在的 pattern)
    • i (忽略事件)
    • m (多行搜索)

    说明

    compile 方法把 pattern 转换为内部的格式,从而执行得更快。例如,这使得可以在循环中更有效地使用正则表达式。当重复使用相同的表达式,那么编译过的正则表达式使执行加速。然而,如果正则表达式改变了,这种编译毫无益处。

    示例

    下面的例子举例说明了 compile 方法的用法:

    function CompileDemo(){
       var rs;
       var s = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp"
       // 只为大写字母创建正则表达式。
       var r = new RegExp("[A-Z]", "g");
       var a1 = s.match(r)              // 查找匹配。返回所有大写的字母以逗号隔开
       // 只为小写字母编译正则表达式。
       r.compile("[a-z]", "g");
       var a2 = s.match(r)              // 查找匹配。
       return(a1 + "
    " + a2;
    }

    Js中RegExp.$1是什么意思

    RegExp 是javascript中的一个内置对象。为正则表达式。

    RegExp.$1是RegExp的一个属性,指的是与正则表达式匹配的第一个 子匹配(以括号为标志)字符串,以此类推,RegExp.$2,RegExp.$3,..RegExp.$99总共可以有99个匹配

    给你看了例子就知道了

    var r= /^(d{4})-(d{1,2})-(d{1,2})$/; //正则表达式 匹配出生日期(简单匹配)    

    r.exec('1985-10-15');

    s1=RegExp.$1;

    s2=RegExp.$2;

    s3=RegExp.$3;

    alert(s1+" "+s2+" "+s3)//结果为1985 10 15

  • 相关阅读:
    等保测评(一)
    一个基于RNN的实体抽取工具
    如何画UML类图
    mysql存储过程整理
    记一次mysql事务未提交导致锁未释放的问题
    开启·元宇宙·区块链金融
    Nacos启动报错:[db-load-error]load jdbc.properties error
    使用Bazel编译TypeScript
    Win10上Docker无法正常启动 出现install WSL2 kernel update的情况
    VSCode调试PHP环境配置 phpstudy vscode xdebug调试
  • 原文地址:https://www.cnblogs.com/rdchen/p/10784356.html
Copyright © 2020-2023  润新知