量词
- 通过量词可以设置一个内容出现的次数
语法:
{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
- 量词只对它前边的一个内容起作用
```javascript
var reg = /ba{3}/; // b 出现1次,a 出现3次
var result = reg.test("baaa");
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
- 第二位 3-9 任意数字
3-9
- 三位以后任意数字 9个
[0-9]{9}$
代码:
var reg = /^1[3-9][0-9]{9}$/;
console.log(reg.test("13898998798")); // true