1、常用的表达式
[a-z] :查找任何从小写 a 到小写 z 的字符
[A-Z] :查找任何从大写 A 到大写 Z 的字符
[0-9] :查找任何从 0 至 9 的数字
[abc] :查找括号内的任意一个字符
[^abc]:查找除了括号内的任意字符
2.常用的元字符(特殊字符)
\w :匹配数字、字母、下划线
\W :匹配非数字、字母、下划线
\d :匹配数字0-9
\D :匹配非数字
\s :匹配空白字符(空格、换行)
\S :匹配非空白字符
\n :匹配换行符
3.常用的限定符
* 匹配前面的子表达式零次或多次
+ 匹配前面的子表达式一次或多次
? 匹配前面的子表达式零次或一次
{n} 匹配确定的 n 次
{n,} 至少匹配n 次
{n,m} 最少匹配 n 次且最多匹配 m 次
4.修饰符
i:不区分大小写
g: 全局匹配,不匹配的第一个停止匹配
m:执行多行匹配
二、语法
reg.test(string) //返回值为布尔值true匹配,false不匹配
String类中可以支持正则的方法:
1.1 search() 返回匹配字符串的下标,否则返回-1
var str = "hello kgc";
console.log(str.search(/kgc/)); // 6
console.log(str.search(/KGC/)); // -1
console.log(str.search(/KGC/i));// 6
2.1 match 如果没有找到任何匹配的文本, 返回 null。否则,它将返回一个数组
var str = "1 and 2 and 3";
console.log(str.match(/\d/));// '1'
console.log(str.match(/kgc/));// null
console.log(str.match(/\d/g));// ["1", "2", "3"]
3.1 replace返回一个新的字符串
var str = "hello huyang";
console.log(str.replace(/huyang/, "kgc")); //hello kgc
var str = "hello huyang, How are you?huyang";
console.log(str.replace(/huyang/g, "kgc")); //hello kgc, How are you?kgc
4.1 split返回一个字符串数组
console.log("hello".split(""));//["h", "e", "l", "l", "o"]
console.log("hello".split("", 3));//["h", "e", "l"]
三、示例
1.匹配字母。
var str="abc";
var reg1=/[a-z]/;
var reg2=/[A-Z]/;
console.log(reg1.test(str)); //true
console.log(reg2.test(str)); //flase
var str = "sgfhdfGIYYjhj";
var reg = /^[a-zA-Z]+$/; //一次或多次 "+"
console.log(reg.test(str));//true
-
验证表单
let user = document.querySelector('#user') let user_p = document.querySelector('.user_p') user.onblur=function(){ reg=/^[\w\u4e00-\u9fa5]{6,12}$/; if(user.value==''){ user_p.innerHTML='不能为空'; return false; } else if(!reg.test(user.value)){ user_p.innerHTML='长度不在范围内或者存在非法字符' return false; } else{ user_p.innerHTML='<i class="ok"></i>正确' return true } }