博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js正则表达式应用
阅读量:4582 次
发布时间:2019-06-09

本文共 3707 字,大约阅读时间需要 12 分钟。

2012年3月19日  天气有雨    没事找事找  不懂得拒绝   招来的事   往心里面咽!难过  

<script type="text/javascript">

        //js中正则表达式学习
        //var re=new RegExp();//RegExp是一个对象,但这样没什么效果,需要将正则表达式的内容作为字符串传进去
        //re=new RegExp("a");//创建一个匹配a字符的表达式
        //alert(re.test("afdf"));//true
        //re=new RegExp("a","g");//忽略大小写  g全文查找   i忽略大小写    m多行查找
        //alert(re.test("ddddass"));//true
        //var re =new RegExp("a","gi");//匹配所有的a或A
        //正则表达式的另一种声明
        //js可以用/表达式/来声明RegExp表达式,并且此声明中的字符不做js的转义处理,直接当成正则表达式  相当c#中加一个“@”
        //var re=/a/gi;
        //正则表达式对象的方法
        //1、test  返回一个Boolean值   指出查找的字符串是否存在此模式
        //2、exec  用正则表达式在字符串中运行查找   并返回包含该查找 结果 的一个数组
        //3、compile  把正则表达式编译为内部格式,从而执行得更快
        //test测试
        //var re=/he/;//最简单的正则表达式,将匹配he这个单词
        //var str="he1234";
        //alert(re.test(str));//true
        //仅仅知道了字符串是否匹配模式还不够,我们还需要知道哪些字符匹配了该模式
        //var osVersion="Ubnutu 8";
        //var re=/^[a-zA-Z]+\s+\d?$/;
        //alert(re.test(osVersion));//true
        //另一个方面,exec,返回一个数组,数组的第一个元素为完整匹配
        //arr=re.exec(osVersion);
        //alert("数组长度:"+arr.length+",arr[0]:"+arr[0]);//数组长度:1,arr[0]:Ubnutu 8
        //我们只需要取出数字
        //re=/\d+/;
        //alert(re.exec(osVersion)[0]);//输出  8
        //更复杂 的用法,使用子匹配
        //var re=/^[a-zA-Z]+\s+(\d?)$/;
        //arr=re.exec(osVersion);
        //alert(arr[0]);//返回   整个字符串
        //alert(arr[1]);//返回   8
        //注意  当字符串不正确时,返回 null
        //String对象的一些和正则表达式有关的方法
        //var str="some money";
        //alert(str.replace("some","much"));
        //var str="some money";
        //var e=/\s/;
        //alert(str.replace(e,"%"));//返回some%money
        //var str="some  some      \tsome\t\f";
        //re=/\s+/g;// g是匹配全局的意思,如果没有g  则匹配成功第一次  就不再进行匹配了
        //alert(str.replace(re," "));//some some some
        //另一个重要的方法是split
         //var str="a-bc-d";
        //var arr=str.split("-");
        //var str1="";
        //for(var i=0;i<arr.length;i++){
        //    str1+=arr[i]+" ";
        //}
        //str = "My age is 18.Golden age!";//年龄不是一定的,我们用indexOf不能查找它的位置
        //re = /\d+/;
        //alert(str.search(re));//返回查找到的字符串开始下标10
        
        //String对象的match方法用于将字符串与正则表达式进行匹配并返回结果数组
        //var str="My name is CJ.Hello everyone!";
        //var re=/[A-Z]/;
        //var arr=str.match(re);
        //alert(arr);//返回结果数组,但只匹配了一个值  “W",因为没有全局匹配
        //re=/[A-Z]/g;
        //arr=str.match(re);
        //alert(arr);//M,C,J,H
        
        //从字符串中抽取单词
        //var re=/\b[a-zA-Z]+\b/g;
        //var str="My name is zhang feng";
        //var arr=str.match(re);
        //alert(arr);//My,name,is,zhang,feng
        
        //RegExp对象实例的一些属性
        //var re=/[a-z]/i;
        //alert(re.source);//输出[a-z]
        
        //每个RegExp对象的实例具有lastIndex属性,它是被查找字符串中下一次成功匹配的开始位置,默认值是-1。 lastIndex 属性被 RegExp 对象的 exec 和 test 方法修改.并且它是可写的.
        //var re = /[A-Z]/;
        //exec方法执行后,修改了re的lastIndex属性,
        //var str = "Hello,World!!!";
        //var arr = re.exec(str);
        //alert(re.lastIndex);//0,因为没有设置全局标志
        //re = /[A-Z]/g;
        //arr = re.exec(str);
        //alert(re.lastIndex);//1
        //arr = re.exec(str);
        //alert(re.lastIndex);//7
        
        //RegExp对象的静态属性
        //input 最后用于匹配的字符串(传递给test,exec方法的字符串)
        //var re = /[A-Z]/;
        //var str = "Hello,World!!!";
        //var arr = re.exec(str);
        //alert(RegExp.input);//Hello,World!!!
        //re.exec("tempstr");
        //alert(RegExp.input);//仍然是Hello,World!!!,因为tempstr不匹配
        //lastMatch 最后匹配的字符
        //re = /[a-z]/g;
        //str = "hi";
        //re.test(str);
        //alert(RegExp.lastMatch);//h
        //re.test(str);
        //alert(RegExp["$&"]);//i  ,$&是lastMatch的短名字,但由于它不是合法变量名,所以要。。
        //lastParen 最后匹配的分组
        //re = /[a-z](\d+)/gi;
        //str = "Class1 Class2 Class3";
        //re.test(str);
        //alert(RegExp.lastParen);//1
        //re.test(str);
        //alert(RegExp["$+"]);//2
        //leftContext  返回被查找的字符串中从字符串开始位置到最后匹配之前的位置之间的字符
        //rigthContext 返回被搜索的字符串中从最后一个匹配位置开始到字符串结尾之间的字符
        //re = /[A-Z]/g;
        //str = "123ABC456";
        //re.test(str);
        //alert(RegExp.leftContext);//123
        //alert(RegExp.rightContext);//BC456
        //re.test(str);
        //alert(RegExp["$`"]);//123A
        //alert(RegExp["$'"]);//C456
        
        //js正则表达式分组
        //当包含分组的正则表达式进行过test,match,search这些方法之后,每个分组都被放在一个特殊的地方以备将来使用,这些存储是分组中的特殊值,我们称之为反向引用
        //反向引用被存储在RegExp对象的静态属性$1—$9中
        //var str="zhangfeng@123.com";
        //var re=/^(\w+)@(.+)$/
        //str.match(re);
        //alert(RegExp.$1);//zhangfeng
        //alert(RegExp.$2);//123.com
    </script>

转载于:https://www.cnblogs.com/arno-zhang/archive/2012/03/19/5027565.html

你可能感兴趣的文章
python之建完model之后操作admin
查看>>
Java 类加载机制 ClassLoader Class.forName 内存管理 垃圾回收GC
查看>>
shell 脚本后台运行知识
查看>>
php设置cookie,在js中如何获取
查看>>
实验三+099+吴丹丹
查看>>
[bzoj3036]绿豆蛙的归宿
查看>>
[洛谷P5057][CQOI2006]简单题
查看>>
多线程同步的几种方法
查看>>
数据结构-冒泡排序
查看>>
关于程序状态字寄存器PSW(Program Status Word)与多核多线程
查看>>
mybatis的缓存
查看>>
java 缓冲流 Buffer
查看>>
7月23号=》261页-265页
查看>>
软考知识点梳理--综合布线
查看>>
Mysql5.6主从热备配置
查看>>
VS2010DebugView捕捉
查看>>
mfix中更改time dependent VTK filename的最大时间步数的容量
查看>>
Windows7安装 docker-compose的过程
查看>>
关于nodeJS多线程的支持,目前看来无法实现,讲解v8的一些东西
查看>>
php递归创建文件夹的两种方法
查看>>