zoukankan      html  css  js  c++  java
  • 正则表达式RegExp对象

    3.1 正则表达式对象的创建方式

    字面量的方式   var patt = /匹配规则/修饰符;     / --> 边界的意思

    new关键字     var patt = new RegExp(/匹配规则/,修饰符);

    3.2 正则表达式对象中的方法

    test()  检测指定字符串中是否含有某种匹配规则

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

    // 字面量的方式   var patt = /匹配规则/修饰符;     / --> 边界的意思
     //创建一个正则表达式,可以用来查看指定字符串中是否含有数字

     1 // 字面量的方式   var patt = /匹配规则/修饰符;     / --> 边界的意思
     2  //创建一个正则表达式,可以用来查看指定字符串中是否含有数字
     3  var patt = /[0-9]/;
     4 
     5  var str = "hello1234";
     6  var str2 = "hello";
     7 
     8  //test()  检测指定字符串中是否含有某种匹配规则  返回一个布尔值
     9 var flag = patt.test(str);
    10 console.log("flag:",flag);//flag: true
    11 
    12  flag = patt.test(str2);
    13  console.log("flag:",flag);//flag: false
    14 
    15  // new关键字     var patt = new RegExp(/匹配规则/,修饰符);
    16  var reg = new RegExp(/d/);
    17  console.log(reg.test(str));//true
    18  console.log(reg.test(str2));//false
     1 <script>
     2 var str = "I Love China!!We are Chinese!!"
     3  
     4  //exec()  检索字符串中指定的值。返回找到的值,并确定其位置
     5  var patt = /[Ch]/;
     6  console.log(patt.exec(str));//["C", index: 7, input: "I Love China!!We are Chinese!!", groups: undefined]
     7  
     8  var patt2 = /Ch/;
     9  console.log(patt2.exec(str));//["Ch", index: 7, input: "I Love China!!We are Chinese!!", groups: undefined]
    10  
    11  //字符串中可以使用正则表达式的方法
    12  // match()    查找找到一个或多个正则表达式的匹配
    13 console.log(str.match("Ch"));//["Ch", index: 7, input: "I Love China!!We are Chinese!!", groups: undefined]
    14  console.log(str.match(patt2));//"Ch", index: 7, input: "I Love China!!We are Chinese!!", groups: undefined]
    15  console.log(str.match(patt));//["C", index: 7, input: "I Love China!!We are Chinese!!", groups: undefined]
    16  
    17  var patt3 = /Ch/g;  //exec方法中修饰符g无效
    18  console.log(patt3.exec(str));//["Ch", index: 7, input: "I Love China!!We are Chinese!!", groups: undefined]
    19  console.log(str.match(patt3));//(2) ["Ch", "Ch"]
    20  
    21  // replace() 在字符串中查找匹配的子串, 并替换与正则表达式匹配的子串
    22  var str = "Hello boys and girls!";
    23  console.log(str.replace(" ",","));//Hello,boys and girls!
    24  console.log(str.replace(/s/,","));//Hello,boys and girls!
    25  console.log(str.replace(/s/g,","));//Hello,boys,and,girls!
    26  
    27  // search()   查找与正则表达式相匹配的值  返回第一次出现的索引
    28  console.log(str.indexOf("o"));//4
    29  console.log(str.indexOf("o",5));//7
    30  console.log(str.search("o"));//4  只有一个参数
    31  console.log(str.search(/o/));//4
    32  
    33  // split()    把字符串分割为字符串数组
    34  console.log(str.split(" "));//["Hello", "boys", "and", "girls!"]
    35  console.log(str.split(/s/));//["Hello", "boys", "and", "girls!"] 
    36 </script>

    3.4 修饰符

    g  global,执行全局匹配

    i  忽略大小写

    m 执行多行匹配

     1 var str = "Hello 中国!!Hello 北京!!";
     2 // 匹配中文:[u4e00-u9fa5]
     3 // 是一个固定用法,中文只能在正则表达式里这样表示
     4 var patt = /[u4e00-u9fa5]/g;
     5 // g  global,执行全局匹配
     6 console.log(str.match(patt));
     7 
     8 // i  忽略大小写
     9 var patt2 = /[A-Z]/g;
    10 console.log(str.match(patt2));
    11 
    12 var patt3 = /[A-Z]/gi;
    13 console.log(str.match(patt3));
    14 
    15 // m 执行多行匹配
    16 var str2 = "感谢大家光临,本人于
    10月1日上午在家观看国兵直播";
    17 var patt4 = /^1/g;  //^ 以指定规则开头
    18 console.log(patt4.test(str2));//false
    19 
    20 var patt5 = /^1/gm;
    21 console.log(patt5.test(str2));//true

    3.5 匹配模式

    [0-9]:查找任何从0至9的数字

    [abc]:用于查找方括号之间的任何字符;方括号内的字符可以是任何字符或字符范围

    [^abc]:查找任何不在方括号之间的字符  ^否定的意思

    [a-z]:查找所有的小写字母

    [A-Z]:查找所有的大写字母

    [A-z]:查找所有的字母(大小写字母)

    [0-9A-z]:包含所有的数字和字母(大小写字母)

    例:var str="Is this all there is?";

    var patt1=/[a-h]/g;

    document.write(str.match(patt1));

    结果: h,a,h,e,e

     1 // [A-z]:查找所有的字母(大小写字母)
     2 // [0-9A-z]:包含所有的数字和字母(大小写字母)
     3 
     4 var str = "Hello@!~-+=123$%^&*()rrr[]{},.4`56_<>/\";
     5 
     6 var patt = /[A-z]/g;
     7 
     8 console.log(str.match(patt));// ["H", "e", "l", "l", "o", "^", "r", "r", "r", "[", "]", "_", ""]
     9 
    10 var patt2 = /[A-Za-z]/g;
    11 
    12 console.log(str.match(patt2));//(8) ["H", "e", "l", "l", "o", "r", "r", "r"]
    13 
    14 var str = "hello world";
    15 console.log(str.match(/[hor]/g));//(4) ["h", "o", "o", "r"]
    16 console.log(str.match(/[^hor]/g));//(7) ["e", "l", "l", " ", "w", "l", "d"]

    3.6 元字符

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

    .(点):代表任何的字符(除了换行和行结束符) 

    w:任何字母、数字、下划线

    W:任何非字母、数字、下划线

    d:任何数字

    D:任何非数字

    s:空白字符

    S:非空白字符

    :查找单词边界

    B:查找非单词边界

    作为了解

    o:查找NULL字符

    :查找换行符

    f: 查找分页符

    :查找回车符

    :查找制表符

    v:查找垂直制表符

    3.7 量词

    ^n:匹配开头为n的字符串

    n$:匹配结尾为n的字符串

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

    n{x}: 匹配任何包含x个n的字符串

    n{x,}: 匹配至少包含x个n的字符串

    n{x, y}:匹配包含x到y个n的字符串

    n*:匹配任何包含0个或者多个n的字符串

    n?:匹配任何包含0个或1个n的字符串

    ?=n:匹配任何其后紧接指定字符串n的字符串

    ?!n:匹配任何其后没有紧接字符串n的字符串 

  • 相关阅读:
    突然连不上VSS等服务器的原因之一
    “复制到剪贴板”的解决方案
    设置SQLServer2008开启远程连接(转)
    对List(IList)集合作求和,最大(小)值操作
    .net实现简单语音朗读(TTS)功能
    17点成就你的好代码
    2011年上半年五大臭名昭著的数据库泄密事件
    Spring Mobile 1.1.0.M2 发布
    Rainbows! 4.4.3 发布,修复 EventMachine 问题
    情绪不是反应,而是决定
  • 原文地址:https://www.cnblogs.com/lvlisn/p/11626331.html
Copyright © 2011-2022 走看看