量词

  • 通过量词可以设置一个内容出现的次数

语法:

  • {n} 出现的次数 ```javascript var reg = /a{3}/; // 表示 a 要出现 3次 var result = reg.test(“aaa”); console.log(result); // true

var result = reg.test(“aab”); console.log(result); // false

  1. - 量词只对它前边的一个内容起作用
  2. ```javascript
  3. var reg = /ba{3}/; // b 出现1次,a 出现3次
  4. var result = reg.test("baaa");
  5. console.log(result); // true
  • () 表示一个整体

    var reg = /(ba){3}/;  // 表示 ba 出现 3次,加了括号就表示一个整体
    var result = reg.test("bababa");
    console.log(result);  // true
    
  • {m,n} 出现 m-n次

    var reg = /ba{1,3}/;  // 表示 a 可以出现 1到3次
    console.log(reg.test("baba"));  // true
    
  • {m,} m次以上

    var reg = /ba{1,}/;
    console.log(reg.test("baaaaa"));  // true
    
  • + 至少一个,相当于 {1,}

    var reg = /ba+c/;
    console.log(reg.test("bac"));  // true
    
  • * 0个或多个,相当于 {0,}

    var reg = /ba*c/;  // 没有也返回 true
    console.log(reg.test("bc"));  // true
    
  • ? 0个或1个,相当于 {0,1} ```javascript var reg = /ba?c/; console.log(reg.test(“bc”)); // true

console.log(reg.test(“baac”)); // false


- `^` **表示开头**
```javascript
var reg = /^a/;
console.log(reg.test("abc"));  // true

console.log(reg.test("babc"));  // false
  • $ 表示结尾
    var reg = /a$/;  // 以 a 结尾
    console.log(reg.test("abca"));  // true
    
    var reg = /^a$/;
    console.log(reg.test("aaa"));  // false
    

    是不是心中有一万个草泥马?

如果在正则表达式中同时使用 ^ $ 则要求字符串必须完全符合正则表达式

var reg = /^a|a$/;  // 表示 开头是a,或者结尾是 a,都行 
console.log(reg.test("aab"));  // true

练习

创建一个正则表达式检查一个手机号是否合法

  1. 以 1 开头 ^1
  2. 第二位 3-9 任意数字 3-9
  3. 三位以后任意数字 9个 [0-9]{9}$

代码:

var reg = /^1[3-9][0-9]{9}$/;
console.log(reg.test("13898998798"));  // true