zoukankan      html  css  js  c++  java
  • javascript正则表达式

    /*
    //复习
    var obj= new Number(2);
    alert(Number.MIN_VALUE);
    
    var num = new Number(22e3);
    alert(num);
    alert(isFinite(num));//判断是否超出了规定的范围
    
    
    var person={fname:"John",lname:"Doe",age:25};
    var txt="";
    for (x in person)
      {
      txt=txt + person[x];
     
      }
      alert(txt); 
    ------------------------------------------
    
    正则表达式(regular expression)
    创建方式:
    1.使用new运算符
    var reg = new RegExp("box");
    alert(reg);//return /box/
    
    var reg = new RegExp("box","ig");//模式修饰符的可选参数 : i-忽略大小写;g-全局匹配;m-多行匹配。
    alert(reg);//return /box/gi
    
    2.使用字面量方式创建
    var reg = /box/;
    alert(reg);//return /box/
    
    
    var reg = /box/ig;
    alert(reg);//return /box/gi
    ---------------------------
    
    var pattern = new RegExp("Box");
    var str = new String("box");
    alert(pattern.test(str));//return false
    
    var pattern = new RegExp("Box","i");
    var str = new String("This is a box");
    alert(pattern.test(str));//return true
    
    alert(/Box/.test("This is a box!"));//false
    
    
    alert(/Box/i.test("This is a box!"));//true
    
    alert(/Box/.exec("This is a box!"));//return null
    alert(/Box/i.exec("This is a box!"));//return box 
    
    alert(/Box/i.exec("This box is a Box!"));//return box
    alert(/Box/i.exec("This Box is a box!")); //return Box
    alert(/Box/ig.exec("This box is a Box!"));//return box
    
    
    var pattern = new RegExp("Box","i");
    var str = new String("This is a Box! That box is a Box!");
    var result = pattern.exec(str);
    var result2 = str.match(pattern);//String对象的方法
    alert(typeof result2);
    alert(result2[0]);
    
    
    var pattern = new RegExp("Box","ig");//全局匹配,即找到所有匹配项目
    var str = new String("This box is a Box! That box is a Box!");
    var result = pattern.exec(str);//返回第一个匹配的字符串
    alert(result[1]);//return undefined 证明返回的不是数组
    var result2 = str.match(pattern);//String对象的方法
    alert(typeof result2);
    alert(result2[1]);//return box证明返回的是一个数组
    
    
    var pattern = new RegExp("Box","i");
    var str = new String("This box is a Box! That box is a Box!");
    var result = str.search(pattern);//String对象的方法
    alert(result);//return 5   返回第一个匹配的位置,找不到就返回-1
    
    
    var pattern = new RegExp("Box","i");//没有开启全局
    var str = new String("This box is a Box! That box is a Box!");
    var result = str.replace(pattern,"Tom");
    alert(result);//This Tom is a Box! That box is a Box!
    
    
    var pattern = new RegExp("Box","ig");//开启全局
    var str = new String("This box is a Box! That box is a Box!");
    var result = str.replace(pattern,"Tom");
    alert(result);//This Tom is a Tom! That Tom is a Tom!
    var pattern = new RegExp("!","ig");//开启全局
    var str = new String("This box is a Box! That box is a Box!");
    var result = str.split(pattern);
    alert(result);//This box is a Box, That box is a Box,
    
    var pattern = new RegExp("!","ig");//开启全局
    var str = new String("This box is a Box! That box is a Box!");
    var result = str.split(pattern);
    for(var i=0;i<result.length;i++){
    alert(result[i]);
    }
    
    var pattern = new RegExp("!","ig");//开启全局
    var str = new String("This box is a Box! That box is a Box!");
    var result = str.split(pattern);
    for(rs in result){
    alert(rs);//return 0, return 1, return 2
    }
    
    var pattern = new RegExp("Box","ig");//开启全局
    var str = new String("This box is a Box! That box is a Box!");
    var result = pattern.test(str);
    //alert(RegExp.input);//This box is a Box! That box is a Box!
    alert(RegExp.leftContext);
    alert(RegExp.rightContext);
    alert(RegExp.lastMatch);
    
    
    var pattern = /g..gle/; //.表示除了换行符以外的其他任意字符
    var str = "google";
    alert(pattern.test(str));//true
    
    
    var pattern = /go*gle/; //o*表示0到多个o
    var str = "gooogle";
    alert(pattern.test(str));//true
    
    var pattern = /go+gle/; //o+表示1到多个o
    var str = "gooogle";
    alert(pattern.test(str));//true
    
    var pattern = /go?gle/; //o?表示0个,或者1个
    var str = "ggle";
    alert(pattern.test(str));//true
    
    var pattern = /go{2,4}gle/; //o{2,4}表示2~4个o,包含2和4
    var str = "google";
    alert(pattern.test(str));//true
    
    var pattern = /go{2}gle/; //o{2}表示只出现2个o
    var str = "google";
    alert(pattern.test(str));//true
    
    
    var pattern = /go{2,}gle/; //o{2,}表示o出现2个或者2个以上
    var str = "gooogle";
    alert(pattern.test(str));//true
    
    var pattern = /go[a-z]gle/; //[a-z]表示26个小写字母中的任意一个
    var str = "google";
    alert(pattern.test(str));//true
    
    var pattern = /go[0-9]gle/; //[0-9]表示0~9中的任意一个
    var str = "go8gle";
    alert(pattern.test(str));//true
    
    var pattern = /go[a-zA-Z0-9]gle/; //[a-zA-Z0-9]是一种复合写法,表示26个大小写字母或数字中的任意一个
    var str = "go8gle";
    alert(pattern.test(str));//true
    
    var pattern = /go[^0-9]gle/; //[^0-9]表示非0~9中的任意一个字符
    var str = "go8gle";
    alert(pattern.test(str));//false
    
    var pattern = /^go[0-9]gle/; //^表示从头开始匹配
    var str = "ggo8gle";
    alert(pattern.test(str));//false
    
    var pattern = /gowgle/; //w表示任意一个字母,数字或下划线,等同于[a-zA-Z0-9_]
    var str = "go_gle";
    alert(pattern.test(str));//true
    
    var pattern = /goWgle/; //w表示任意一个非字母,非数字且非下划线的字符,等同于[^a-zA-Z0-9_]
    var str = "go_gle";
    alert(pattern.test(str));//false
    
    var pattern = /godgle/; //d表示任意一个数字,等同于[0-9]
    var str = "go9gle";
    alert(pattern.test(str));//true
    
    var pattern = /goDgle/; //D表示任意一个非数字的字符,等同于[^0-9]
    var str = "go9gle";
    alert(pattern.test(str));//false
    
    var pattern = /google$/; //$表示从行尾开始匹配
    var str = "ggoogle";
    alert(pattern.test(str));//true
    
    var pattern = /goosgle/; //s查找空白字符。
    var str = "ggoo gle";
    alert(pattern.test(str));//true
    
    var pattern = /google/; //匹配单词边界。类似于$
    var str = "ggoogle";
    alert(pattern.test(str));//true
    
    var pattern = /google|baidu|bing/; //竖线|表示匹配或选择模式
    var str = "ggoogle";
    alert(pattern.test(str));//true
    
    var pattern = /(google|baidu|bing)s/; //竖线|表示匹配或选择模式
    var str = "ggoogles";
    alert(pattern.test(str));//true
    
    
    var pattern = /google{4,8}$/; //表示结尾处e出现4~8次
    var str = "ggoogleeee";
    alert(pattern.test(str));//true
    
    
    var pattern = /(google){4,8}$/; //括号表示分组,表示结尾处google出现4~8次
    var str = "ggooglegooglegooglegoogle";
    alert(pattern.test(str));//true
    
    var pattern = /8(.*)8/; //分组
    var str = "goo8google8gle";
    //pattern.test(str);
    //pattern.exec(str);
    str.match(pattern);
    alert(RegExp.$1);//google    RegExp.$1表示获取模式中第一个分组对应的匹配字符串  
    
    var pattern = /8(.*)8/; //分组
    var str = "this is 8google8";
    document.write(str.replace(pattern,"<strong>google</strong>"));
    
    var pattern = /8(.*)8/; //分组
    var str = "this is 8google8";
    document.write(str.replace(pattern,"<strong>$1</strong>"));
    
    var pattern = /8(.*)8/; //分组
    var str = "this is 8google8";
    document.write(str.replace(pattern,"<strong>$1</strong>"));
    
    
    
    var pattern = /[a-z]/; 
    var str = "you love";
    alert(str.replace(pattern,"1"));//1ou love
    
    var pattern = /[a-z]+/; //+贪婪模式
    var str = "you love";
    alert(str.replace(pattern,"1"));//1 love
    
    var pattern = /[a-z]+?/; //使用+?惰性模式
    var str = "you love";
    alert(str.replace(pattern,"1"));//1ou love
    
    var pattern = /8(.*)8/; //使用了贪婪模式
    var str = "this is 8google8 8google8 8google8 ";
    document.write(str.replace(pattern,"<strong>$1</strong>"));//this is <strong>google8 8google8 8google</strong>
    
    
    var pattern = /8(.*?)8/; //使用了惰性模式
    var str = "this is 8google8 8google8 8google8 ";
    document.write(str.replace(pattern,"<strong>$1</strong>"));//this is <strong>google</strong> 8google8 8google8 
    
    
    var pattern = /8(.*?)8/g; //使用了惰性模式,开启全局
    var str = "this is 8google8 8google8 8google8 ";
    document.write(str.replace(pattern,"<strong>$1</strong>"));//this is <strong>google</strong><strong>google</strong><strong>google</strong>
    
    
    var pattern = /8([^8]*)8/g; //另一种惰性,屏蔽了8的匹配,开启全局
    var str = "this is 8google8 8google8 8google8 ";
    document.write(str.replace(pattern,"<strong>$1</strong>"));//this is <strong>google</strong><strong>google</strong><strong>google</strong>
    
    var pattern = /8([^8]*)8/g; //另一种惰性,屏蔽了8的匹配,开启全局
    var str = "this is 8google8 8google8 8google8 ";
    document.write(str.replace(pattern,"<strong>$1</strong>"));//this is <strong>google</strong><strong>google</strong><strong>google</strong>
    
    
    
    var pattern=/(d+)([a-z])/; //捕获型分组,所有的分组都捕获返回
    var str="123abc";
    var a=pattern.exec(str);
    alert(a[0]);//123a  返回匹配到的字符串
    alert(a[1]);//123  返回第一个分组匹配到的字符串
    alert(a[2]);//a  返回第二个分组匹配到的字符串
    
    var pattern=/(d+)(?:[a-z])/; //非捕获型分组,只需在不需要捕获返回的分组加上?:
    var str="123abc";
    var a=pattern.exec(str);
    alert(a[0]);//123a  返回匹配到的字符串
    alert(a[1]);//123  返回第一个分组匹配到的字符串
    alert(a[2]);//undefined  返回第二个分组匹配到的字符串
    
    console.log("test zhangweiwen");
    
    
    
    var pattern=/(a?(b?(c?)))/;//嵌套匹配,从外到内
    var str="abc";
    alert(pattern.exec(str));//abc,abc,bc,c
    
    
    var pattern=/goo(?=gle)/;//必须是后面跟着gle,才能返回goo
    var str="google";
    alert(pattern.exec(str));//goo
    
    
    var pattern=/[1-9][0-9]{5}/;
    var str="741027";//必须是6位,必须为数字,首位不能为0
    alert(pattern.test(str));
    alert(str.match(pattern));
    
    var pattern=/^w*.zip|7z&/;  //字母,数字,下划线为压缩文件的名 
    var str="study_2015.zip";
    alert(pattern.test(str));
    var pattern=/(s+)/g;
    
    
    var str="        goog      le     ";
    alert(str.replace(pattern,","));
    //alert("|"+pattern.exec(str)+"|");
    alert(str.match(pattern));
    
    var pattern=/(w+)/g;
    var str="        goog      le     a";
    alert(str.replace(pattern,","));
    //alert("|"+pattern.exec(str)+"|");  //|goog,goog| 第一个表示返回的所有分组,第二个goog表示返回的第一个分组匹配到的字符串
    alert(str.match(pattern));  //goog,le,a  返回所有匹配到的字符串
    
    
    var pattern=/^s+(.+?)s+$/;   //  /.+/表示贪婪模式   /.+?/表示惰性模式
    var str="      goog le       ";
    alert("|"+str.replace(pattern,"$1")+"|");  //将匹配的结果用第一个分组的匹配结果字符串替换
    alert(RegExp.$1);  //可以查看第一个分组的匹配结果
    
    */

    你要坚强,坚强的足以认识自己的弱点;你要勇敢,勇敢的足以面对自己的恐惧;你要堂堂正正。在遇到挫折时能够昂首而不背躬屈膝;你要能够面对掌声,在胜利时能够谦逊而不趾高气扬。真正的伟大直率真诚,真正的贤人虚怀若谷,真正的强者温文尔雅。——萨利·布什(林肯的继母教育林肯)
  • 相关阅读:
    解决“验证码代码完毕且页面代码没问题但网页无法显示验证码图片”
    关于服务器已经启动“localhost拒绝你的请求”
    解决eclipse项目在浏览器中启动时老是报404错误可是路径没错
    解决“错误: 找不到或无法加载主类 org.apache.catalina.startup.Bootstrap”
    解决“The Tomcat server configuration at ServersTomcat v8.0 Server at localhost-config is missing. Check the server for errors.”
    解决“The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path”
    解决“JSONArray cannot be resolved to a type”
    Windows10系统截图
    解决“ eclipse出现Exception in thread ‘main’ java.lang.NoClassDefFoundError”
    解决“has value‘1.7’,but 'jdk1.8' is requred”
  • 原文地址:https://www.cnblogs.com/jinhuazhe2013/p/4314304.html
Copyright © 2011-2022 走看看