zoukankan      html  css  js  c++  java
  • JavaScript学习笔记-正则表达式(RegExp对象)

    正则表达式(RegExp对象)
     
    1.正则表达式字面量,在脚本加载后编译。若你的正则表达式是常量,使用这种方式可以获得更好的性能,重复使用时不会重新编译;
    2.使用构造函数创建的RegExp,提供了对正则表达式运行时的编译。主要用于当你知道正则表达式的模式会发生改变时,或者你事先并不了解它的模式或者是从其他地方(比如用户的输入),每次使用都会重新编译;
            var myRe = /d(b+)d/g;
            var myArray = myRe.exec("cdbbdbsbz");
    如果你不需要访问正则表达式的属性,这个脚本通过另一个方法来创建myArray:
            var myArray = /d(b+)d/g.exec("cdbbdbsbz");
    如果你想通过一个字符串构建正则表达式,那么这个脚本还有另一种方法:
            var myRe = new RegExp('d(b+)d', 'g');  //字符串内特殊字符需转义
    或:var myRe = new RegExp(/d(d+)d/,'g')
            var myArray = myRe.exec("cdbbdbsbz");
     
    RegExp属性:
    RegExp.prototype.constructor 创建该正则对象的构造函数。
    RegExp.prototype.global 是否开启全局匹配,也就是匹配目标字符串中所有可能的匹配项,而不是只进行第一次匹配。
    RegExp.prototype.ignoreCase 在匹配字符串时是否要忽略字符的大小写。
    RegExp.prototype.lastIndex 下次匹配开始的字符串索引位置,这个属性只有在使用g参数时可用
    RegExp.prototype.multiline 是否开启多行模式匹配(影响 ^ 和 $ 的行为)。
    RegExp.prototype.source 正则对象的源模式文本。在正则表达式创建时更新,不执行
    RegExp.prototype.sticky (ES6)是否开启粘滞匹配。
     
    RegExp方法:每次执行exec()、test()方法后,就立即自动将lastIndex设置下次匹配开始位置,而String的方法则总是将lastIndex重置为0
     
    myRe.exec(str) 如果成功匹配,返回一个数组,并且更新正则表达式对象的属性。返回的数组包括匹配的字符串作为第一个元素,紧接着一个元素对应一个( )保存的子表达式匹配到的子串;如果匹配失败,exec 方法将返回 null。
            返回的数组属性:index指匹配到的字符位于原始字符串的基于0的索引值;input指原始字符串;
            更新后的正则表达式属性: lastIndex 下一次匹配开始的位置; source 正则模式的字符串;
     
    myRe.test(str);  测试一个字符串中是否匹配,它返回true或false
     
     
    使用正则表达式的方法
    方法             描述
    exec         一个在字符串中执行查找匹配的RegExp方法,它返回一个数组(未匹配到则返回null)。
    test          一个在字符串中测试是否匹配的RegExp方法,它返回true或false。
    match       一个在字符串中执行查找匹配的String方法,它返回一个数组或者在未匹配到时返回null。
    search      一个在字符串中测试匹配的String方法,它返回匹配到的位置索引,或者在失败时返回-1。
    replace     一个在字符串中执行查找匹配的String方法,并且使用替换字符串替换掉匹配到的子字符串。
    split          一个使用正则表达式或者一个固定字符串分隔一个字符串,并将分隔后的子字符串存储到数组中的String方法。
     
    正则表达式标志
    标志     描述
    g         全局搜索。
    i          不区分大小写搜索。
    m         多行搜索。'^','$'多行模式时匹配的开始或结束输入字符串中的每一行,而不是整个字符串的开始或结束
    y         执行“粘性”搜索,匹配从目标字符串的当前位置开始,可以使用y标志
    u         Unicode。将模式视为Unicode码位(code points)序列
  • 相关阅读:
    【BUG】java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone
    IntelliJ IDEA控制台输出中文乱码问题
    CMD命令
    MongoDB学习笔记
    MyBatis生成序列ID
    MongoDB配置问题
    正确处理下载文件时HTTP头的编码问题(Content-Disposition)
    SpringJPA主键生成采用自定义ID,自定义ID采用年月日时间格式
    Java根据经纬度算出附近正方形的四个角的经纬度
    gradle
  • 原文地址:https://www.cnblogs.com/susufufu/p/5705798.html
Copyright © 2011-2022 走看看