一、量词
可以设置一个内容出现的次数
量词只对它前边的一个内容起作用,如果需要几个以上内容需要加个括号
{n} 正好出现n次
{m,n}出现m-n次
{m,}m次以上
+ 至少一个,相当于{1,}
* 0个或多个,相当于{0,}
? 0个或1个,相当于{0,1}
var reg = /a{3}/;
console.log(reg.test("aaabc"));//输出true
/*检查一个字符串中是否以a开头
^ 表示开头
$ 表示结尾
*/
reg = /^a/;//匹配开头的a
reg = /a$/;//匹配结尾的a
reg = /^a$/;//开头之后直接结尾
/* 如果在正则表达式中同时使用^ $则要求字符串必须完全符合正则表达式
小练习
创建一个正则表达式,用来检查一个字符串是否是一个合法手机号
手机号的规则:13527293280(11位)
1.以1开头 ^1
2.第二位3-9任意数字 [3-9]
3.三位以后任意数字9个 [0-9]{9}$
var phoneStr = "13527293280";
var phoneReg = /^1[3-9][0-9]{9}$/;
console.log(phoneReg.test(phoneStr));
二、正则表达式语法
/*检查一个字符串中是否含有 .
. 表示任意字符
在正则表达式中使用\作为转义字符
\. 表示 .
\\ 表示\
注意:使用构造函数时,由于它的参数是一个字符串,而\是字符串中转义字符,如果要使用\则需要使用\\来代替
*/
var reg = /\./;
console.log(reg.test("b."));//输出true
/*
\w 任意字母、数字、_ [A-z0-9_ ]
\W 除了字母、数字、_ [^A-z0-9_ ]
\d 任意的数字[0-9]
\D 除了数字[^0-9]
\s 空格
\S除了空格
\b 单词边界
\B除了单词边界
*/
创建一个正则表达式检查一个字符串中是否含有单词child
var reg = /\bchild\b/;
console.log(reg.test("hello child ")); //前后不能有单词
/^\s+|\s+$/g 匹配开头和结尾的空格