zoukankan      html  css  js  c++  java
  • 正则表达式使用示例

    //一个数据类型,记录文本规则,一些事先定义好的一些特殊字符,对字符串的过滤逻辑
    //表单验证账号长度,字母或数字组合,高级搜索
    //特点,不仅js有;极简的方式操作字符串;灵活,功能强大
    // 正则表达式大全
    var patt1=new RegExp("e");
    document.write(patt1.test("The best things in life are free"));
    /*是否带有小数*/
    function isDecimal(strValue ) {
    var objRegExp= /^d+.d+$/;
    return objRegExp.test(strValue);
    }

    /*校验是否中文名称组成 */
    function ischina(str) {
    var reg=/^[u4E00-u9FA5]{2,4}$/; /*定义验证表达式*/
    return reg.test(str); /*进行验证*/
    }

    /*校验是否全由8位数字组成 */
    function isStudentNo(str) {
    var reg=/^[0-9]{8}$/; /*定义验证表达式*/
    return reg.test(str); /*进行验证*/
    }
    var arr = new Array();
    var reg = new RegExp(/d/);
    //表示匹配数字
    reg = reg.test("jndwjdw");
    console.log(reg);
    //正则对象。test(需要验证的字符串)
    //字面量声明
    var reg2 = /男|女/;
    //有没有其中一个
    var reg = reg2.test("呦呦哟偶女");
    console.log(reg);
    console.log(/男|女/.test("哈迪哈迪哈女"));
    //语法
    //.test();正则表达式检测某段字符串

    //预定义类
    console.log(/./.test(" ")); //除了回车和换行外的任意字符
    console.log(/d/.test("123")); //检测是不是数字
    console.log(/D/.test("sh")); //非数字字符,只要不是数字就true,只要有一个就是true
    console.log(/s/.test(" ")); //只要有不可见就true fh两个空字符串拼接是false
    console.log(/S/.test("ah7")); //只要有可见字符就对
    console.log(/w/.test("b-8")); //所有字母数字和下短线_,只要有就是对短线
    console.log(/W/.test(("bg8-@"))); //true//只要有非单词字符就是对

    //自定义类,没有
    console.log(/d/.test("123")); //检测这段里面有不有d这个字 //
    console.log(/yskma/.test("yskmama")); //true//检测这段字符串包不包含yskma,不能断开不能中间穿插别的
    console.log(/yskmama/.test("ysk")); //false //或和优先级
    console.log(/ysk|mama/.test("ysk")); //true
    console.log(/ys(k|m)a/.test("ysk")); //false//检测这段字符串中有不有yska或者ysma
    console.log(/ys(k|m)a/.test("yskma")); //false//检测这段字符串中有不有yska或者ysma

    //简单类[]代表一个字符
    console.log(/[abc]/.test("gbhigf")); //true//只要出现abc中 的任意一个就是对
    console.log(/y[abc]z/.test("yaz")); //true//包含yz,并选一个a
    console.log(/y[abc]z/.test("yabcz")); //false//abc只能要一个

    //负向类[^ ]取反
    console.log(/[^abc]/.test("a")); //false//除了括号外的内容才是对,有就是错,不能有括号内的
    console.log(/[^abc]/.test("af")); //true//除了括号外的内容才是对,有就是错,不能有括号内的

    //范围类
    console.log(/[0-9]/.test("b8jg")); //true
    //组合类,组合起来就是组合类,自定义类
    //^边界,以。。开头
    //$以。。结尾
    //^bc$严格匹配
    //.回车和换行以外的
    console.log(/^6a/.test("6akjjkak")); //true
    console.log(/^6.a/.test("6akjjkak")); //false
    console.log(/[.]{8}/.test("6akjjkak")); //false,当前"."就是代表字符串".",此处没有8个".",所以false;
    console.log(/ac$/.test("6akjjkakac")); //true//ac结尾
    console.log(/^6a$/.test("6a")); //true
    console.log(/^d$/.test("9")); //true//只能出现一次
    console.log(/^abcd$/.test("abc7")); //true//只能出现一次

    //量词:?0||1次;+前面的>=1次;*>=0次
    console.log(/^colo*r$/.test("color")); //true
    console.log(/^colo+r$/.test("color")); //true
    console.log(/^colo?r$/.test("color")); //true
    console.log(/^colo?r$/.test("colr")); //true
    console.log(/^colo?r$/.test("coloor")); //false
    console.log(/^colo*r$/.test("colooooooor")); //true

    //量词,{}前面出现的:。。{n}n次;{n,}>=n;{n,m}...>=n..<=m
    //*{0,}..?{0,1}....+{1,}
    //括号总结{}次数;[]一个;()一组,分组
    //转Unicode:escape("你好")-----Ununicod("u%hkkblpp%^Vhk")
    //所有汉字在一到与之间
    console.log(/[u4e00-u9fa5]/.test("哈"));
    console.log(/[u4e00-u9fa5]{3}/.test("哈你好"));

    //字符串替换
    var str = "abcde";
    console.log(str.replace("a", "b")); //bbcde
    console.log(str.replace(/a/g, "b")); //bbcde

    //换成句号
    var str = "a,b,c,d,e";
    var str2 = str.replace(/,/g, "."); //g是替换全部
    console.log(str2);

    //修改成绩
    var str = "a,b,c,70,90";
    var str2 = str.replace(/d{1,}/g, "100"); //g是替换全部
    console.log(str2); //吧,.都改成。
    var str = "a,b,c,70,90.";
    var str2 = str.replace(/[ , , .]/g, "。"); //g是替换全部
    console.log(str2);
    var stra = " abc "

    function MyTirm(stra) {
    var str3 = stra.replace(/^s+|s+$/g, ""); //去掉前后空格空格换成空字符串
    return str3;
    }
    var str2 = MyTirm(stra);
    console.log("==" + str2 + "==");
    //想要的字符提取出来,提取邮箱 //来不及写
    //math,提取符合要求的元素

    //分组提取,提取邮箱的每一个部分
    RegExp.$1, RegExp.$2, RegExp.$3
    //检索字符indexof();lastindexof();返回下标
    var str = "张三:1000,李四:5000,王五:8000。";
    var arr = str.match(/d+/g);
    console.log(arr); //math返回数组,提取元素
    //exec只取一个,math可以取全部的
    //正则对象:test,exec........字符串:math,spilt,search,
    //用某个字符分隔字符串
    var str = "123123@xx.com,fangfang@valuedopinions.cn 286669312@qq.com 2、emailenglish@emailenglish.englishtown.com 286669312@qq.com...";
    var arr = str.match(/w+@w+(.w+)+/g);
    console.log(arr);



    //6 分组提取
    //提取email中的每一部分
    var str = "123123@xx.com";
    var reg = /(w+)@(w+).(w+)(.w+)?/;
    var array = str.match(reg); //获取分组的数据 ()是分组
    console.log(RegExp.$1); //123123
    console.log(RegExp.$2); //xx
    console.log(RegExp.$3); //com //分组练习
    var str = "5=a, 6=b, 7=c";
    str = str.replace(/(d)=(w)/g, "$2====$1"); //吧567分3组,吧abc分3组,2组在前面,1组在后面
    console.log(str);
    //i 忽略大小写
    //g 全局匹配
    //控制字符串相关方法

    //1、正则对象的 test exec
    //2、字符串的 replace search match split
    //用法:
    console.log(/d/.test("123"));
    console.log(/[u4e00-u9fa5]{3}/.test("哈你好"));
    //除了.test和search方法能直接执行,math,replace,split,exec都需要数组接收返回值
    var str = "abc100,ccc200,ddd300";
    var arr = /d+/.exec(str);
    console.log(arr + "这儿"); //100//只能匹配一项,可以用在分组匹配
    var arr = str.match(/d+/g);
    console.log(arr);
    var str = "abc100ccc200ddd300";
    var arr = str.split(/d+/);
    console.log(arr);
    var str = "哈哈哈哈,100分"; //检索里面数字出现的下标
    console.log(str.search(/d+/));
    var str = "abcdebfg";
    var strNew = str.replace("b", "d");
    console.log(strNew);
    console.log(str);
    var v = 2
    new RegExp("^\d+" + v + "$").test(12) //true
     
     
  • 相关阅读:
    Silverlight实例教程
    c#.net大文件上传(切片)
    ASP.NET大文件上传(切片)
    jsp大文件上传(切片)
    php大文件上传(切片)
    本地图文直接复制到博客编辑器中
    本地图文直接复制到CMS编辑器中
    本地图文直接复制到SiteFactory编辑器中
    本地图文直接复制到动易CMS编辑器中
    本地图文直接复制到帝国CMS编辑器中
  • 原文地址:https://www.cnblogs.com/chenluqing/p/10837998.html
Copyright © 2011-2022 走看看