创建正则表达式

  1. var reg = /a/ig
  2. // //间添加正则表达式内容,g表示全局,i忽略大小写

test

判断字符串是否复合正则表达式规则

  1. <script>
  2. // 规则字符串中字符出现规律的表达式
  3. /* reg.test(str) */
  4. var str = "hello";
  5. var reg =/l/g;
  6. console.log(str.replace(reg,"*"));//he**o
  7. console.log(reg.test(str))//true
  8. </script>

exec

判断字符串是否复合正则表达式规则并提取分组
分组的内容会有()括住,字符串符合条件就会依次排列在数组的[1]后

  1. var string = '/api/addgood/3'
  2. const res = /\/(api)\/getgood\/(\d+)/.exec(string)
  3. console.log(res[2]) //3

备选字符集

定义:规定某一位字符的备选字符列表
特点:多选一

  1. <script>
  2. var str = "上海,上天,上哪里去"; //"*"
  3. var reg = /上[海天]/g
  4. console.log(str.replace(reg,"*"))//*,*,上哪里去
  5. </script>
  1. <script>
  2. var reg =/[上天哪]/g
  3. var str ="上海,哪里去,天";
  4. console.log(str.replace(reg,"*"))//*海,*里去,*
  5. </script>

备选字符的unicode号连续

  1. 一个数字[0-9]
  2. 一个小写字母[a-z]
  3. 一个大写字母[A-Z]
  4. 一个数字或字母[0-9a-zA-Z]

预定义字符集

针对常用的备选字符集提供的简化符号

  1. [0-9] --> \d //一位数字
  2. [0-9a-zA-Z_] -->\w //一位数字字母或下划线
  3. \s //1位空字符:空格,tab,换行
  4. . // 除换行外,其余所有字符
  1. <script>
  2. var str ="_jhfdl2323_";
  3. var reg = /\d/g;
  4. console.log(str.replace(reg,"*"))//_jhfdl****_
  5. console.log(str.replace(/\w/g,"*"))//***********
  6. console.log(str.replace(/./g,"*"))//***********
  7. </script>

量词

确定数量

  1. <script>
  2. /* test() */
  3. /*
  4. 量词 规则字符出现的次数
  5. {m} 只出现m次
  6. {m,n} m<reg<n
  7. {m,} reg>m
  8. */
  9. var pwd = "12115fdsfsd"; // 密码5-7num
  10. var reg = /[0-9]{5,7}/;
  11. console.log(reg.test(pwd));
  12. </script>

不确定数量

  1. <script>
  2. /*
  3. ? 0-1 {0,1}
  4. + 大于1个 {1,}
  5. * {0,}
  6. */
  7. var str = "hje1";
  8. var reg =/\d+/
  9. console.log(reg.test(str))
  10. </script>

贪婪模式和懒惰模式

贪婪模式 给量词的情况下 默认取最大值 默认是贪婪的

  1. var str = "123456abc";
  2. var reg = /\d{3,6}/;
  3. console.log(str.replace(reg,"*"))//*abc

懒惰模式?

  1. var str = "123456abc";
  2. var reg = /\d{3,6}?/;
  3. console.log(str.replace(reg,"*"))*456abc

选择和分组

  1. //选择
  2. | 读作"或"
  3. //分组
  4. ()

选择

  1. <script>
  2. var str = "哪里,哪去能发多少积分";
  3. console.log(str.replace(/哪里|能发/g,"*"))
  4. </script>

分组

  1. 手机号:+860086 可有可无,最多1
  2. 空字符 不限制个数
  3. 1
  4. 3,4,5,7,8 选其一
  5. 9位数字
  6. (\+86|0086)?\s*1[34578]\d{9}

指定匹配位置

  1. 开头和结尾:^开头的xxx$结尾的xxx

何时使用:仅匹配开头的规则和结尾的规则时使用 固定搭配:^正则表达式$—>表示从头到尾完整匹配 开头和结尾只出现正则表达式的内容

何时使用:只要验证时,必须前加^,后加$!

  1. ^\s+//匹配字符串开头的所有空字符
  2. \s+$//匹配字符串结尾的所有空字符
  1. var a =" hello";
  2. var reg =/^\s+/;
  3. var str =a.replace(reg,"");
  4. console.log(str);

排除

  1. //除了abc
  2. [^abc]