JavaScript 正则表达式

1.正则表达式的作用:

  1)正则表达式可以对一个输入的字符串进行测试,查看该输入字符串是否符合要求的模式,比如电话或者邮箱。

  2)替换文本,可以在文档中使用一个正则表达式来表示特定的文字,然后用对象将其删除或者替换别的文字

  3)匹配字符串中的子字符串,然后及逆行操作。

2.创建正则表达式的语法

  1)

<script type="text/javascript">
       var str= "aaabbbccc";
       var reg = new RegExp(); //RegExp和Array一样是一个对象,这样没有任何效果,需要将正则表达式作为参数传递进去
       reg = new RegExp("a","ig");//表示查找a,i表示不区分大小写,g表示全文查找
  </script>

  2)作用等同于上面

reg = /"a"/ig;

3.正则表达式的属性和对象

  1).test返回一个布尔类型的值,检查所输入的字符串是否存在,存在返回true,不存在返回false

1             var input = prompt("输入一个六位数的密码")
2             var reg = /^d{6}&/ig;
3             var bool = reg.test(input);
4             console.log(bool);                

  2).exec

    提取指定字符串中的符合要求的子串(或者匹配模式),返回一个数组存放匹配结果;如果没有,则返回null。

    exec可以说是test的升级版本,因为它不仅可以检测,而且检测到了可以直接提取结果。

  3)match,找到一个或多个正则表达式的匹配。

  4)replace,替换与正则表达式匹配的子串。str = str.replace(/正则表达式/ig,"替换的值"),如果替换的值式空,就达到删除的效果。

  5)search,检索与正则表达式相匹配的值。返回下标,找不到就返回-1

4.正则表达式预定义类

  . 查找单个字符,除了换行和行结束符

  d 匹配一个数字类型

  w 匹配一个字母数字下划线

  W 查找非单词字符

  D 匹配一个非数字

  s 匹配一个空格

  S 查找非空白字符

   匹配单词边界 

  B 匹配非单词边界

5.预定义字符

         换行符 
         回车符 
         制表符 
  f      换页符(Tab) 
        退格符(BackSpace) 
  v      垂直制表符 
        空字符("") 

6.量词(理解)

  *   匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。 * 等价于{0,}。

  +   匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,},至少一次。

  ?   匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1},最多一次。 

  {min,max} 规定最少出现次数,和最多出现次数(可以只写一个)

  ^ 用来匹配字符串开头

  $ 用来匹配字符串结尾

 7.属性

  正则表达式是严格区分大小写的

  i 加上去后不区分大小写

  g 全局匹配  找到了一个以后还是会继续接着找

  m  多行匹配

  lastIndex 为一个整数  标示开始下一次匹配的字符位置。也叫作游标,可以获取赋值

  source  正则表达式的源文本

8.方括号[]表示匹配一个字符

  [abcd] 表示匹配任意一个字符

  [a-z] 匹配a到z的任意一个字符

  [A-Z] 匹配A到Z的任意一个字符

  [0-9] 匹配0到9的任意一个字符

  [^] 表示取反

应用实例:

1.写一个function,清楚字符串前后的空格

var hello  ="   hell o   ";
        function reg(str){                
            str = str.replace(/(^s*)|(s*)$/g,"");//用正则表达式匹配到开头的空格或者结尾的空格,
         然后以“”空字符串代替
//其中^s是以空格开头,*是不限制次数, //s* $是匹配不限制次数的以结尾的空格 console.log(str); } reg(hello);

2.试用正则表达式,验证邮箱格式

function email(email){
        var reg = /^w+@w+(.w{2,3}){1,2}$/g;
        console.log(reg.test(email_value));
    }
    var email_value = "1231231313@qq.com";
    email(email_value);
原文地址:https://www.cnblogs.com/wangzheng98/p/10901954.html