一 代码
不算难,但是个人对量词的+、*、?这三个用得不算特别熟,具体用到的时候花几分钟再研究一下即可。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
* 创建一个正则表达式检查一个字符串中是否含有aaa
*/
/*
* 1. 量词
* - 通过量词可以设置一个内容出现的次数
* - 量词只对它前边的一个内容起作用
* - {n} 正好出现n次
* - {m,n} 出现m-n次
* - {m,} m次以上
* - + 至少一个,相当于{1,}
* - * 0个或多个,相当于{0,}
* - ? 0个或1个,相当于{0,1}
*/
var reg = /a{3}/; // 表示正好出现3次a。
reg = /(ab){3}/; // 表示正好出现3次ab,必须添加括号,否则只对上一个字符有效,例如ab{3},表示abbb。
reg = /b{3}/; // 表示正好出现3次b。
reg = /ab{1,3}c/; // 表示b的次数可以是1个到3个。即abc,abbc,abbbc都可以。
reg = /ab{3,}c/; // 表示b的次数是3次以上。
reg = /ab+c/; // 表示至少一个b。这个不是很熟,后续用到再看。
reg = /ab*c/; // 表示b可以是0-多个?这个不是很熟,后续用到再看。
reg = /ab?c/; // 这一行不太懂,后续用到再看。
//console.log(reg.test("abbc"));
/*
* 2. 检查一个字符串中是否以a开头
* ^ 表示开头
* $ 表示结尾
*/
reg = /^a/; //匹配开头的a
reg = /a$/; //匹配结尾的a
//console.log(reg.test("abcabca"));
/*
* 3. 如果在正则表达式中同时使用^ $则要求字符串必须完全符合正则表达式。
*/
reg = /^a$/; // 表示只能是a。
//console.log(reg.test("bbca"));
/*
* 4. 创建一个正则表达式,用来检查一个字符串是否是一个合法手机号
*
* 手机号的规则:
* 1 3 567890123 (11位)
*
* 1. 以1开头
* 2. 第二位3-9任意数字
* 3. 三位以后任意数字9个
*
* ^1 [3-9] [0-9]{9}$
*
*/
var phoneStr = "13067890123";
// ^1表示首位必须是1;[3-9]表示第二位可以是3-9的数字;[0-9]{9}表示后面9位可以是0-9的数字,加上$后,表示这9位数字后,就是结尾,所以必须匹配11个数字。
var phoneReg = /^1[3-9][0-9]{9}$/;
console.log(phoneReg.test(phoneStr));
</script>
</head>
<body>
</body>
</html>