• JavaScript---正则表达式


    在JavaScript中,RegExp对象表示正则表达式,用来对字符串进行匹配。

    一、两种定义方法:

    1、直接量法:

    /pattern/attribute

    2、对象法:

    new RegExp(pattern,attribute);

    参数说明:

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

    attribute是一个可选的字符串,用来模式匹配的范围,包括i,g,m三个字符,分别代表区分大小写匹配、全局匹配和多行匹配。(如果pattern是正则表达式而不是字符串,怎必须删除该参数)

     i-->ignoreCase;

    g-->gloable;

    m-->multiLine;

    二、正则表达式语法说明:

    正则表达式的语法从修饰符、方括号、元字符、量词、RegExp对象属性、RegExp对象方法和支持正则表达式的String对象的方法等七个方面进行描述:

    1、修饰符:

     
    修饰符 描述
    i 执行对大小写不敏感的匹配
    g 执行全部匹配(查找所有的匹配项,而非在找到第一个匹配项后结束)
    m

    执行多行匹配                                                                            

                                                                                                                                                                                                                        

    2、方括号:

    表达式 描述
    [abcd] 查找给定集合内的任意字符
    [^abcd] 查找不在给定集合内的任意字符
    [0-9] 查找任何从0到9的数字
    [a-z] 查找任何从a到z的小写字母
    [A-Z] 查找任何从A到Z的大写字母
    [A-z] 查找任何从大写A到小写z的字母
    [red|blue|green] 查找任何指定的选项                                                    

                                                                                                                                                                                                                       

    3、元字符

    元字符 描述
    .              查找任意一个字符,不包括换行符和行结束符
    w 查找单词字符,单词字符包括a-z、A-Z、0-9和下划线
    W 查找非单词字符
    d 查找数字
    D 查找非数字字符
    s

    查找空白字符,包括空格符、制表符、回车符、换行符、垂直换行符和换页符

    S 查找非空白字符
     匹配单词边界
    B 匹配非单词边界
    查找null字符
    查找换行符,返回换行符被找到的位置,如果没有就返回-1
    f 查找换页符
    查找回车符
    查找制表符
    v 查找垂直制表符
    ×××

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

    ×dd 查找以十六进制dd规定的字符
    u×××× 查找以十六进制××××规定的unicode字符

                                                                                                                                                                                                                                 

      

     

    4、量词

    量词 描述
    n+ 匹配包含至少一个n的字符串        
    n* 匹配包含0个或多个n的字符串
    n? 匹配包含0个或1个n的字符串
    n{X} 匹配包含x个n的序列的字符串
    n{X,Y} 匹配包含X个或Y个n的序列的字符串
    n{X,} 匹配至少包含X个n的序列的字符串
    n$ 匹配任何以n结尾的字符串
    ^n 匹配任何以n开头的字符串
    ?=n 匹配任何其后紧接指定字符串n的字符串
    ?!n 匹配任何其后不紧接指定字符串n的字符串                                       

                                                                                                                                                                                                                                          

    5、RegExp对象属性

    属性 描述
    gloable

    RegExp对象是否有g标示,RegExpObject.global,返回boolean类型                                                          

    ignoreCase

    RegExp对象是否有i标示,RegExpObject.global,返回boolean类型

    multiline

    RegExp对象是否有m标示,RegExpObject.global,返回boolean类型   

    lastIndex 一个整数,表示下一次开始匹配的位置
    source 正则表达式原文本   ,返回模式匹配所用的文本                          

     

                                                                                                                                                                                           

    6、 RegExp对象方法

    方法 描述
    compile

    编译正则表达式。

    用法:RegExpObject.compile(regexp,modifier) modifier规定匹配的类型-->i,m,g

    exec 检索字符串中指定的值,返回找到的值并确定其位置,如果没找到则返回null
    test 检索字符串中指定的值,返回boolean类型.用来判断一个字符串是否匹配某个模式,RegExpObject.test(String)

                                                                                                                                                                                                   

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

    方法 描述
    search 检索与正则表达式相匹配的值或指定的子字符串。用法:stringObject.search(regexp)
    match 匹配指定的值或与一个或多个正则表达式匹配的字符串。用法:stringObject.match(searchvalue);stringObject.match(regexp)
    replace 用一些字符替换另一些字符或替换与一个正则表达式匹配的子串。用法:stringObject.replace(regexp/substr,replacement),前者是子串或要替换的正则表达式,后者是替换文本
    split 用于把一个字符串分割成字符串数组。用法:stringObject.split(separator,howmany)。前者必须,字符串或正则表达式,从该参数指定的地方开始分割。

                                                                                                                                        

    最美好的时光里,不要一直是一个lowser!
  • 相关阅读:
    Android两级嵌套ListView滑动问题的解决
    关于Android适配华为等带有底部虚拟按键的解决方案
    更加成熟的领导力素质和学习敏感度
    完美解决ScollView内嵌ListView的问题
    Gson序列化问题导致的内存溢出,tip:Background sticky concurrent mark sweep GC freed
    从功能实现到实现设计
    iOS面试题汇总
    2017计算机专业大学排名
    Buffer.from()
    Buffer.isBuffer()详解
  • 原文地址:https://www.cnblogs.com/hellowhy/p/6080716.html
Copyright © 2020-2023  润新知