zoukankan      html  css  js  c++  java
  • JavaScript正则表达式基础知识汇总

    一、创建正则对象:

    1、构造函数RegExp创建正则对象

    var pattern = new RegExp('s$'); //pattern匹配以s结尾的字符串

    2、使用正则直接量

    var pattern = /s$/; //建议这样写

    二、正则表达式字符

    1、反斜线 在正则表达式中表示转义序列

    特殊符号:

    ^ $ . * + ? = ! : |  / ( ) [ ] { }

    如果想要在正则表达式中匹配它们,应该在他们前面加上反斜线,如:

    var pattern = /$/; //pattern匹配$符号

    2、直接量字符

    字符    匹配
    o     NUL字符(u0000)
         制表符(u0009)
         换行符(u000A)
    v     垂直制表符(u000B)
    f     换页符
         回车符
    xnn   由十六进制数nn指定的拉丁字符,例如:x0A等价于
    uxxxx 由十六进制数xxxx指定的Unicode字符,例如:u0009等价于
    cX    控制字符^X。例如:cJ等价于换行符

    3、字符类

    字符         匹配
    [...]       方括号内的任意字符
    [^...]      非方括号内的任意字符
    [0-9]       0-9之间的数字
    [a-z]       小写的拉丁字母
    [A-Z]       大写的拉丁字母
    [0-9a-zA-Z] 数字和大小写拉丁字母

    下面也属于字符类:

    .    除换行符和其他Unicode行终止符之外的任意字符
    s   任意Unicode空白符
    S   任意非Unicode空白符
    d   任意ASCII码数字,等同于[0-9]
    D   任意非ASCII码数字的字符,等同于[^0-9]
    w   任意ASCII码单词字符,等同于[a-zA-Z0-9_]
    W   任意非ASCII数字,等同于[^a-zA-Z0-9_]
    [] 在字符类中表示退格直接量

    4、重复字符类

    贪婪的重复字符

    字符      匹配
    {n,m}  前一项至少n次,但不能超过m次
    {n,}   前一项至少n次
    {n}    前一项恰好n次
    ?      前一项0次或1次,等价于{0,1}
    +      前一项至少一次,等价于{1,}
    *      前一项0次或多次,等价于{0,}

    非贪婪的重复匹配只需在贪婪的重复字符后面加上一个?(问号),且问号后没有其他表达式字符,否则非贪婪匹配忽略。例:

    var str = 'aaaaaa',
     str2 = 'aaaaaabc',
     pattern = /a+/,
     pattern2,
     pattern3;
        
     pattern.exec(str); //全部匹配
     
     pattern2 = /a+?/;
     pattern2.exec(str); //只匹配了字符串中str的第一个a
     
     pattern3 = /a+?bc/;
     pattern3.exec(str2); //全部匹配,匹配结果为aaaaaabc

    5、选择,分组,引用

    字符              含义 
    | 表示或,用于分隔选择
    () 子表达式(子模式),可以引用子模式匹配结果
    (
    ?:) 子表达式(子模式),可以引用子模式匹配结果,但是子模式匹配结果不出现在正则匹配结果集中
    (n为数字) 引用对应的子模式匹配结果
    6、位置字符
    字符 匹配
    ^ 字符串的开头
    $ 字符串的结尾
     位于w(单词字符)与W(非单词字符)的边界或位于一个ASCII单词字符与一个字符串的开头和结尾之间的边界
    B 非词语之间的位置
    (?=p) 正前向声明,要求接下来的字符与模式p匹配,但是不包括匹配中的那些字符
    (?!=p) 反前向声明,要求接下来的字符不与模式p匹配

    例:

    1 var url = 'vip.etao.com/youhui.htm?drawCredits',
     2 pattern = /youhui/,
    3 pattern2 = /^vip.etao.com/.+drawcredits$/i;
    4
    5 pattern.exec(url); //匹配youhui子串
    6 pattern2.exec(url); //全部匹配url变量值 

     

    三、正则对象标准,属性,及方法

    1、标志

    标志  含义 
    g 全局匹配
    i 不区分大小写
    m 多行匹配

    2、方法

    exec     接受一个字符串参数,返回由完全匹配和子表达式匹配结果组成的数组 
    test 接受一个字符串参数,返回boolean值
    compile 编译正则表达式

    3、属性

    source     正则表达式的文本 
    global 是否拥有全局搜索标志g
    ignoreCase 是否拥有标志i
    multiline 是否拥有标志m
    lastIndex 搜索匹配的开始位置(可读写)
    
    
  • 相关阅读:
    Android Studio常用插件续
    Android Studio常用小技巧
    Repeater, DataList, 和GridView的区别及使用
    ListView在编辑状态下不能获取修改后的值,无法更新数据
    ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示(二)
    ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示(一)
    使用Sql分页方法给Repeater控件分页的方法
    使用生活实例理解Asp.net运行时
    .net4.0注册到IIS ,重新注册IIS ,iis注册
    关于.NET编译的目标平台(AnyCPU,x86,x64)
  • 原文地址:https://www.cnblogs.com/sandea/p/3289891.html
Copyright © 2011-2022 走看看