正则表达式的相关梳理
1.边界符 ^开头 $结尾
var rg = /abc/;
console.log(rg.test('abc'));//true
console.log(rg.test('abcd'));//true
console.log(rg.test('aabcd'));//true
var rg1 = /^abc/;
console.log(rg1.test('abc'));//true
console.log(rg1.test('abcd'));//true
console.log(rg1.test('aabcd'));//false
var rg2 = /^abc$/;//精确匹配,要必须是abc才符合规范
console.log(rg2.test('abc'));//true
console.log(rg2.test('abcd'));//false
console.log(rg2.test('aabcd'));//false
console.log(rg2.test('abcabc'));//false
2.[]字符类,表示有一系列字符可以供选择,只要匹配其中一个就行
var rg = /[abc]/;//只要包含有a或者b或者c就可以
console.log(rg.test('andy'));//true
console.log(rg.test('bady'));//true
console.log(rg.test('color'));//true
console.log(rg.test('red'));//false
var rg1 = /^[abc]$/;//三选一 只有是a 或者b 或者c这三个字母才为true
console.log(rg1.test('aa'));//true
console.log(rg1.test('a'));//true
console.log(rg1.test('b'));//true
console.log(rg1.test('c'));//true
console.log(rg1.test('abc'));//false
3.然后"-"号可以表示范围;
var rg1 = /^[a-z]$/;//三选一 只有是a 或者b 或者c这三个字母才为true
console.log(rg1.test('a'));//true
console.log(rg1.test('z'));//true
console.log(rg1.test('1'));//false
console.log(rg1.test('A'));//false
这里总结一下,还是举例:
var rag = /^[a-zA-Z0-9_-]$/; // '^'开头,'$'结尾,中间的a-z,A-Z,0-9,代表允许出现的字符范围;
//[]表示多选一; 意思是允许所有的大小写英文字母,所有的阿拉伯数字,下划线_与短横线-出现.不在此范围内则返回false;
正则取反时的操作也比较容易.
var rag = /^[^a-zA-Z0-9_-]$/;
判定条件如果存在上面的判定条件中,全部取反.不在该范围内返回true,在就返回false.
量词符
| 量词 | * | + | ? | {n} | {n,} | {n,m} |
| 说明 | 重复零次或更多次 | 重复一次或更多次 | 重复零次或一次 | 重复n次 | 重复n次或者更多次 | 重复n到m次 |
量词是设定某个模式出现的次数.
var reg = /^[a-zA-Z0-9_-]{6,16}$/;
//这里表示验证元素出现6到16次都是合法的.小于或者超出这个范围都是不合法的;
这里小总结一下: 对于没有括号的,以第一个字母核对一次为准;小括号表示优先级,正则的字符串是一个整体;中括号是字符集合,匹配方括号中的任意字符一次;大括号是量词符,里面表示重复次数.
4.预定义类
| 预定类 | \d | \D | \w | \W | \s | \S |
| 说明 | 匹配0-9之间任一数字,相当于[0-9] | 匹配所有0-9外字符,相当于[^0-9] | 匹配任意字母下划线,相当于[a-zA-z0-9] | 除去所有字母,数字和下划线以外的字符,相当于[^a-zA-z0-9] | 匹配换行符,制表符,空格符等,相当于[\t\r\n\v\f] | 匹配非空格字符,相当于[^\t\r\n\v\f] |
浙公网安备 33010602011771号