基础篇
1.正则中的 开始和结束限制符号
1.
^表示匹配字符串的
开始
,$表示匹配字符串的
结束
^表示匹配字符串的
开始
,$表示匹配字符串的
结束
var reg = /^this/; //只能匹配开始位置为this 的字符串。
var str = 'this is a test!';
var str1 = ' this is a test!';
console.log(reg.test(str));//true
console.log(reg.test(str1));//false
var reg = /this$/;//只能匹配结束位置为this的字符串。
var str3 = 'this is a test';//false
var str4 = 'this is a test this';//true
2. ^和$
同时出现
在匹配模式的开始和结束位置时,只匹配他们之间的部分
var reg = /^this$/;//这个值能匹配 this 字符串 其他都不匹配!
var str1 = 'this is a test';
var str2 = 'this';
console.log(reg.test(str1));//false
console.log(reg.test(str2));//true
reg =/this/;//这种情况 只要字符串中有this 就匹配成功
str1 = 'this is a test';//true
str2 = 'is a test';//false
console.log(reg.test(str1));//true
console.log(reg.test(str2));//false
3
.
^不在开始位置而是在[]时意思是取反的意思 也就是不包含的意思,至于[]的讲解在后面会详细提到
var reg = /hello,[^w]/;
var str = 'hello,world';
console.log(reg.test(str));//false
var str1 ='hello,better';
console.log(reg.test(str1));//true
2.元字符(这里详细的可以参考w3c中对每个元字符详细的描述)
点击这里查看详情
注意:
这里不单单这些特殊符号表示的是元字符,单个的字母 数字 下划线等也是一个元字符
这里不单单这些特殊符号表示的是元字符,单个的字母 数字 下划线等也是一个元字符
3.修饰符(这里按照我的理解称之为修饰符,意思就是对元字符起到修饰的作用)
常用修饰符包括 * + ? {n,m} {n}等 下面 一一进行详细说明
注意:
修饰符不能单独使用,要不然会出错,必须和元字符配合使用,也就是起到修饰的作用 ,如果把元字符比作 汉子中的名词,那么修饰符就相当于形容词,没有名词,形容词也就无用武之地了。
修饰符不能单独使用,要不然会出错,必须和元字符配合使用,也就是起到修饰的作用 ,如果把元字符比作 汉子中的名词,那么修饰符就相当于形容词,没有名词,形容词也就无用武之地了。
修饰符 | 前面元字符出现的次数 |
* |
0次或更多次 |
+ |
至少1次 |
? |
0次或者1次 |
{n,m} |
最少n次,最大m次(n<=m) |
{n} |
n次 |
这样一来 * + ? 都可以用{n,m}的形式来表示了
* 等价于 {0,}
+ 等价于 {1,}
?等价于 {0,1}
*示例
var reg = /hello,w*d/;//w出现个数可以为0个可以为多个
var str = 'hello,mm';
var str1 = 'hello,d';
var str2 = 'hello,wd';
var str3 = 'hello,wwwwwd';
console.log(reg.test(str));//false
console.log(reg.test(str1));//true
console.log(reg.test(str2));//true
console.log(reg.test(str3));//true
+示例
var reg = /hello,w+d/;
var str = 'hello,mm';
var str1 = 'hello,d';
var str2 = 'hello,wd';
var str3 = 'hello,wwwwwd';
console.log(reg.test(str));//false
console.log(reg.test(str1));//false
console.log(reg.test(str2));//true
console.log(reg.test(str3));//true
?示例
var reg = /hello,w?d/;
var str = 'hello,mm';
var str1 = 'hello,d';
var str2 = 'hello,wd';
var str3 = 'hello,wwwwwd';
console.log(reg.test(str));//false
console.log(reg.test(str1));//true
console.log(reg.test(str2));//true
console.log(reg.test(str3));//false
{n,m}示例
var reg = /hello{2,5}d/; //匹配hello,o 出现的次数最少为2次,最多为5次 后面紧跟一个d
var str = 'sljfhellodsdf';
var str1 = 'sljfhelloodsdf'
var str2 = 'sljfhellooodsdf'
var str3 = 'sljfhelloooodsdf'
var str4 = 'sljfhellooooodsdf'
var str5 = 'sljfhelloooooodsdf'
console.log(reg.test(str));//false
console.log(reg.test(str1));//true
console.log(reg.test(str2));//true
console.log(reg.test(str3));//true
console.log(reg.test(str4));//true
console.log(reg.test(str5));//false
{n}示例
var reg = /hello{2}d/; //匹配hello,o 出现的次数只能为2次 后面紧跟一个d
var str = 'sljfhellodsdf';
var str1 = 'sljfhelloodsdf'
var str2 = 'sljfhellooodsdf'
var str3 = 'sljfhelloooodsdf'
var str4 = 'sljfhellooooodsdf'
var str5 = 'sljfhelloooooodsdf'
console.log(reg.test(str));//false
console.log(reg.test(str1));//true
console.log(reg.test(str2));//false
console.log(reg.test(str3));//false
console.log(reg.test(str4));//false
console.log(reg.test(str5));//false
4. [ ] 和 | 符号的详细说明
[] 匹配内部出现任意一个元字符
| 相当于或的意思
var reg = /hello,[a-z]+/;//匹配 hello, 后面是小写字母
var str = 'hello,world';
var str1 ='hello,World';
var str2 ='hello,better';
var str3 ='hello,Better';
console.log(reg.test(str));//true
console.log(reg.test(str1));//false
console.log(reg.test(str2));//true
console.log(reg.test(str3));//false
var reg = /hello,[world|better]/;//匹配 hello, 后面紧跟 world 或者 better
var str = 'hello,world';
var str1 ='hello,meinv';
var str2 ='hello,better';
var str3 ='hello,Better';
console.log(reg.test(str));//true
console.log(reg.test(str1));//false
console.log(reg.test(str2));//true
console.log(reg.test(str3));//false
注意:这里的 [a-z] 在前面没有讲解到 这里表示 所有的小写字母,你也可以[a-c] 表示 abc中的一个 只是一种简写而已 同理 [0-9]表示0到9中的其中一个数字 那要表示字母数字 下划线 该如何表示呢 [a-z0-9A-Z_] 是不是感觉很强大。
进阶篇
(
进阶篇会根据我遇到的情况慢慢进行补充和整理,本人整理不可能
版权声明:本文为wu595679200原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。