正则表达式相关知识点总结
1.正则表达式的语法
<script>
/*
* 创建一个正则表达式检查一个字符串是否含有aaa
*
* 量词
* -通过量词可以设置一个内容出现的次数
* -量词只对它前边的一个内容起作用
* -{n}正好出现n次
* -{m,n}出现m-n次
* -{m,}m次以上
* - + 至少一个,相当于{1,}
* - * 0个或多个,相当于{0,}
* - ? 0或1个,相当于{0,1}
*/
var reg = /a{3}/;
//ababab
console.log(reg.test("aaabc"));//true
reg = /ab{3}/
console.log(reg.test("abbb"));//true,只对b起作用
reg = /(ab){3}/
console.log(reg.test("ababab"));//true
reg = /ab{3}c/;
console.log(reg.test("abbbc"));//true,a和c之间刚好有3个b
reg = /b{3}///是否有连续出现的三个b
console.log(reg.test("bb"));//false
reg = /ab{1,3}c/
console.log(reg.test("abbc"));//true
reg = /ab+c/
console.log(reg.test("abbbbc"));//true
/*
* 检查一个字符串中是否以a开头
* ^ 表示开头
* $ 结尾
*
* 如果在正则表达式中同时使用^和$ ,则要求字符串中必须完全符合正则表达式
* reg=/^a|a$/;以a开头或者结尾
*/
reg = /^a/
console.log(reg.test("abcabc"));//true
reg = /^a$/; //a开头又结尾
console.log(reg.test("a"));///true
</script>
<script>
/*
* 创建一个正则表达式,用来检查一个字符串是否是一个合法手机号
*手机号规则
* 1 3 567890123(11位)
*
* 1. 以1开头
* 2. 第二位3-9任意数字
* 3. 第三位以后任意数字9个
* ^1 [3-9] {0-9}{9}$
*/
var phoneStr = "13278831206";
var phoneReg = /^1[3-9][0-9]{9}$/;
console.log(phoneReg.test(phoneStr));//true
</script>
<body>
<script>
/*
* 检查一个字符串中是否含有.
*
* .表示任意字符
* 在正则表达式中使用\作为转义字符
* \.来表示
* \\ 表示\
*
* 注意,使用构造函数,由于它的参数是一个字符串,而\是字符串中的转义字符,
* 如果使用\则需要使用\\来代替
*
*
* \w
* -任意字母 任意数字 _ [A-z0-9_]
* \W
* -除了字母 数字 下划线 [^A-z0-9]
* \s
* -空格
* \S
* - 除了空格
* \b
* -单词边界
* \B
* -除了单词边界
* \d
* - 任意数字[0-9]
* \D
* - 除了数字[^0-9]
*/
/*
* 创建一个正则表达式检查一个字符串中是否含有单词child
*
*
*/
var reg = /./;
reg = /\\/
reg = new RegExp("\\.")
reg = /\bchild\b/;
console.log(reg.test("hello children"));//false
console.log(reg.test("bbbbbb"));//false
console.log(reg.test("b"));//true
console.log(reg.test("b.\\"));
console.log("b.\\");//b.\
//去掉字符串中的空格
//去掉字符串就是使用""来替换空格
var str = " he llo "
//去除开头的空格
//str = str.replace(/^\s*/g, "");
//去掉结尾的空格
str = str.replace(/\s*$/, "");
//匹配开头和结尾的空格 /^\s*|s*$/g
str = str.replace(/^\s*|s*$/g, "");//he llo
console.log(str);
</script>
</body>
2.常见正则表达式
<script>
//\[]
// > >
// // \ 转义
// var str = ".[/b]"
// var reg = /\.\[\/b]/;
// console.log(reg.test(str));
// // m 换行
// var pattern = /^\d+/gm;
// var str = "1,baidu98\n2,google99\n3,bing100";
// console.log(str);
// console.log(str.replace(pattern, "#"));
// // 邮政编码(共6位数字, 第一位不能为0)
// var reg = /^[1-9]\d{5}$/
// // 电子邮件(xxxx@xxx(.xxx) +)
// // var reg=/\w+@\w+\.\w+/ig
// var str1 = "zh.an.san@1000phone.com"
// var str2 = "zhansan@1000phone.com"
// var str3 = "zh.an@1000phone.com.cn"
// var reg=/^\w+(\.\w+)*@\w+(\.\w+)+$/ig;
// //手机号(13或14或15或18开头的11位数字)
// // var reg=/^1[3458]\d{9}$/
// var reg=/^1[3-9]\d{9}$/g
// // 用户名(只能使用数字字母下划线, 且数字不能开头, 长度在6-15位)
// var reg=/^[a-z_]\w{5,14}$/i
// //身份证
// var reg=/^[1-9]\d{16}[\d|x]$/i
// console.log(reg.test('43042420011212123X'));
// // 120
// var reg=/(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$)/
// var reg=/(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$)/
// var str = "2017-11-11";
// var reg=/^\d{4}-\d{2}-\d{2}$/ // 99
//图片文件格式
var str=/\.(jpg|gif|png|jpeg|webp)$/
</script>
</body>