正则表达式基础知识
^匹配开始
$匹配结束
? 0个或1个 do(es)?能匹配do和does
* 0个或多个 zo*能匹配z和zoo
+ 1次或多次 zo+能匹配zo或zoo,但不能匹配z
. 匹配除"n"以外的任意字符
d 任何一个数字字符,等价于0-9 D任何非数字字符
w 包括下划线在内的任何单词字符 等价 [0-9a-zA-Z_]
{number} 设置匹配字符数量
知识兔h3 id="创建正则实例化对象">创建正则实例化对象- 字面量方式:通过两个反斜杠“/”,/模式/修饰符;
知识兔td>1
2
3
知识兔td>var str1 = "wwww22222";
var exp1 = /[a-z 0-9]/;
console.log(exp1.test(str1));//true
手机号正则表达式验证
知识兔td> | 知识兔td> |
用户名正则,4到16位(字母,数字,下划线,减号)var uPattern = /^[a-zA-Z0-9_-]{4,16}$/;
整数正则var intPattern = /^-?d+$/;
邮箱Email正则var reg = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/;
- 构造函数方式:通过new RegExp(模式,修饰符);
知识兔td>1
2
3
知识兔td>var str = "cdbbdz";
var exp = new RegExp("d(b+)d", "g");
console.log(exp.test(str)); //true
使用正则表达式的方法
test() 测试是否包含exp方法,返回true或false
字符串的方法:search()、match()、 replace()、split()
当你想要知道在一个字符串中的一个匹配是否被找到,你可以使用test或search方法;想得到更多的信息(但是比较慢)则可以使用exec或match方法。
strObj.search( regexp ):检查字符串与当前的正则模式所匹配的子字符串首次出现的位置,返回匹配成功子字符串的位置;若没有的话,则返回-1。
知识兔td> | 知识兔td> |
strObj.match(regexp):检查字符串把与正则模式所匹配的子字符串,以数组的形式输出。
知识兔td> | 知识兔td> |
strObj.replace( regexp,newStr | fn ):检查字符串与正则模式所匹配的子字符串,并替换。
知识兔td> | 知识兔td> |
strObj.split(regexp,n):切割字符串,返回数组格式的结果。第二个参数是限制返回的数组长度。
知识兔td> | 知识兔td> |
exec():查找当前字符串与正则模式所匹配的文本,最终存储在数组里;匹配不成功返回null。
知识兔td> | 知识兔td> |
参考资料:正则表达式 | MDN