JAVASCRIPT正则表达式

来源:互联网 发布:宝马工程师编程步骤 编辑:程序博客网 时间:2024/06/05 04:57
正则表达

    1.作用

          1.1.测试字符串的某个模式(电话号码模式或一个信用卡号码).

          1.2.替换文本.

          1.3.根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字

    2.语法 由普通字符(例如字符 a z)以及特殊字符(称为元字符)组成的文字模式

      1.量词

          ? 零次或一次

          * 零次或多次

          + 一次或多次

          {n}匹配n {n,}至少n {n,m} nm (m>n).

      2.预定义类(系统已经做好了的.)

          \s 匹配一个空白字符  [ \n\r\t\f\x0B]

          \w 数字,字母,下划线  [a-zA-Z0-9_]

          \d 数字  [0-9]

          \S 匹配一个非空白字符  [^ \n\r\t\f\x0B]

          \W 非数字,字母,下划线  [^a-zA-Z0-9_]

          \D 非数字  [^0-9]

      3.选项标志 可以组合使用.

          g 全文查找.

          i 忽略大小写.

          m 多行查找.

      4.其他

          \ 转义字符

          ^ 匹配输入字符串的开始位置. [^ ]取反.

          $ 匹配输入字符串的结束位置.

          . 一个任意字符.

      5.两种声明方式

          1,new 一个RegExp

          var  reg = new RegExp();      RegExp是一个对象,Array一样

          var reg = new RegExp("a","gi");       匹配所有的aA

          2,字面量的声明方式/\d+/  /[\u4e00-\u9fa5]{2,}/验证汉字

 

    3.正则表达式对象的方法及使用

          1.test,返回一个 Boolean值,它指出在被查找的字符串中是否存在模式。如果存在则返回 true,否则就返回 false reg.test(str);

          2.exec,用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组。[只要匹配的到的话就直接取出bin返回]reg.exec(str);

          3.compile,把正则表达式编译为内部格式,从而执行得更快。

          4.match,它就是将所有匹配的内容,以数组的形式全部返回.str.match(reg);

          5.元字符匹配正则表达式本身时,必须对这些元字符转义. //????( [ { \ ^ $ | ) ? * + .

           var re = /\?/;//将匹配?

           re = new RegExp("\\?");//正确,将匹配?//双重转义

            脱字符 ^,$  var reg = /^as/gi;//^表示必须要以as开头.

          6.简单类(字符类) var re = /[abc123]/;//将匹配abc1236个字符中一个只要有一个就可以了

          7.反向类 re = /[^abc]/;//将匹配除abc之外的一个字符

          8.范围类 re = /[a-z]/;//将匹配小写a-z 26个字母

          9.组合类 re = /[a-z0-9A-Z_]/;//将匹配字母,数字和下划线

          10.预定义类. \s,\S \w,\W \d,\D

          分组 var reg = /^([a-z]+)(\s+)\d+/;

          创建的两种方式

           1.var reg = new RegExp('as','gi');

           2.var reg = /as/gi;

      其他

          1.replace() 替换  str.replace(/^-+/g,'*')   str.replace(/\s+/g,'')去空格.

          2.split() 拆分  str.split(/[^\d]/)对数字进行拆分.

          3.search(); 找位置str.search(/\d/),找数字出现的位置,

          4.str.indexOf(1) 找位置 //不能放正则表达式

    4.贪婪量词与惰性量词

      1.贪婪量词:如果是整个匹配就直接将全部的返回,要是整体不匹配就从后往前匹配,直到碰到不匹配的,

        就将匹配到的返回,继续匹配剩下的.(+,?,*,{n},{n,},{n,m});

          var  str = "abb#asdfdbbbsaiouisbbb";

          var reg1 = /\w+bbb/; //\w+bbb表示一个或多个字母或数字,下划线加上bbb.

          //alert(reg1.exec(str)+"|"+"\n"+str.match(reg1));//asdfdbbbsaiouisbbb //匹配了继续匹配剩下的.

      2.惰性量词:???它首先将第一个字符当成一个匹配,如果成功则退出,如果失败,则测试前两个字符,

        依些增加,直到遇到合适的匹配为止.(+?,??,*?,{n}?,{n,}?,{n,m});

          var  str = "absdbas*dfdbbbsaisdfouisbbb";

          var reg1 = /\w+?bbb/; //-匹配到了就不在匹配了

          //alert(reg1.exec(str)+"|"+"\n"+str.match(reg1));//dfdbbb

0 0
原创粉丝点击