• 正则表达式之javascript


    1.正则表达式的定义
    描述字符模式的对象,JavaScript的RepExp类表示正则表达式

    var pattern = new RegExp("s("); <=> var pattern = /s)/;

    2.直接量字符
    o NUL字符
    制表符
    换行符
    v 垂直制表符
    f 换页符
    回车

    3.字符类
    [...] 方括号内的任意字符
    [^...] 不在方括号内的任意字符
    . 除换行符和其他Unicode行终止符之外的任意字符
    w 任何ASCII字符组成的单词,等价于[a-zA-Z0-9]
    W 任何非ASCII字符组成的单词,等价于[^a-zA-Z0-9]
    s 任何Unicode空白符
    S 任何非Unicode空白符
    d 任何ASCII数字,等价于[0-9]
    D 任何非ASCII数字,等价于[^0-9]
    [] 退格直接量

    4.重复
    {n,m} 匹配前一项至少n次,但不超过m次
    {n,} 匹配前一项n次或者更多次
    {n} 匹配前一项n次
    ? 匹配前一项0次或者1次,等价于{0,1}

    •        匹配前一项至少1次或者更多次,等价于{1,}
      
    •        匹配前一项0次或者更多次,等价于{0,}
      

    example:
    /d{2,4}/ //匹配2~4个数字
    /w{3}d?/ //匹配3个单词加一个可选数字
    /s+javas+/ //匹配java单词前后至少一个空格
    /[^(]*/ //匹配以一个或者多个左括号开始的字符

    5.非贪婪
    重复为尽可能的多匹配,非贪婪模式是尽可能的少匹配
    ??
    +?
    *?

    example:
    {1,5}? //尽可能的匹配一个

    6.选择分组引用
    | 选择,匹配的是该符号左边的子表达式或者右边的子表达式
    (...) 组合,将几个项组合为一个单元,这个单元可通过* + ? | 等符号加以修饰,而且记住和这个组合相匹配的字符串以供此后的引用使用
    (?:...) 只组合,把项组合到一个单元,但不记忆与改组相匹配的字符
    和第n个分组第一次匹配的字符相匹配,组是圆括号中的子表达式(也可能是嵌套的),组索引是从左到右的左括号数,(?: 形式的分组不编码

    7.锚字符
    ^ 匹配字符串的开头,在多行检索中匹配一行的开头
    $ 匹配字符串的结尾,在多行检索中匹配一行的结尾
     匹配一个单词的边界,就是位于w与W之间的位置
    B 匹配非单词边界的位置
    (?=p) 零宽正向先行断言,要求接下来的字符都与p匹配,但不能包括匹配p的那些字符
    (?!=p) 零宽负向先行断言,要求接下来的字符都不与p匹配

    8.修饰符
    i 不区分大小写
    g 全局匹配
    m 多行匹配模式

    9.用于模式匹配的String方法
    search()
    “javascript”.search(/script/i); 如果匹配则返回对应索引,否则返回-1
    replace()
    text.replace(/javascript/gi,"JavaScript"); 检索和替换
    match()
    "1 plus 2 equals 3".match(/d+/g); 返回["1","2","3"]
    split()
    "1,2,3,4,5".split(/s,s/);返回["1","2","3","4","5"]

    10.RegExp对象
    RegExp第一个参数包含正则表达式的主体部分,也就是直接量中两条斜线之间的文本,不论是字符串直接量还是正则表达式都使用 字符作为转义字符的前缀,
    因此当给RegExp()传入一个字符串表述正则表达式时,必须将 替换成
    第二个参数是可选的,只能传 g i m,或者它们的组合
    var zipcode = new RegExp("d{5}","g");

    RegExp属性
    source:是一个只读字符串,包含正则表达式的文本
    global:是一个只读的布尔值,用以说明这个正则表达式是否带有修饰符g
    ignoreCase:是一个只读的布尔值,用以说明正则表达式是否带有修饰符i
    multiline:是一个只读的布尔值,用以说明正则表达式是否带有修饰符m
    lastIndex:是一个可读/写的整数,如果匹配模式带有g修饰符,这个属性存储在整个字符串的下一次检索的开始位置,会被exec(),test()方法用到

    RegExp方法
    exec()
    执行字符串的匹配检索,类似String.match(),都会返回一个数组
    test()
    当调用exec方法返回不为null则调用test方法返回为true

  • 相关阅读:
    struts debug 标签
    No result defined for action com.lk.IndexAction and result success
    记一次jdk升级引起的 Unsupported major.minor version 51.0
    jar hell & elasticsearch ik 版本问题
    Glide图片加载框架小bug
    环信easeui集成:坑总结2018(二)
    Android项目实战(五十一):浅谈GreenDao
    Android项目实战(五十):微信支付 坑总结
    Android项目实战(四十九):Andoird 7.0+相机适配
    环信easeui集成:坑总结2018
  • 原文地址:https://www.cnblogs.com/ccylovehs/p/8478706.html
Copyright © 2020-2023  润新知