本文主要总结了正则表达式的一些基础知识点,完整详细的正则知识学习,推荐老姚的JS正则表达式完整教程(略长)。
2020年2月21日更新:
强烈推荐学习/使用正则表达式的在线网站:在线测试,验证正则表达式的工具。
正则表达式基础知识
^匹配开始
$匹配结束
? 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} 设置匹配字符数量
创建正则实例化对象
- 字面量方式:通过两个反斜杠“/”,/模式/修饰符;
|
|
手机号正则表达式验证
|
|
用户名正则,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_-]+)+$/;
2. 构造函数方式:通过new RegExp(模式,修饰符);
|
|
使用正则表达式的方法
test() 测试是否包含exp方法,返回true或false 字符串的方法:search()、match()、 replace()、split() 当你想要知道在一个字符串中的一个匹配是否被找到,你可以使用test或search方法;想得到更多的信息(但是比较慢)则可以使用exec或match方法。
strObj.search( regexp ):检查字符串与当前的正则模式所匹配的子字符串首次出现的位置,返回匹配成功子字符串的位置;若没有的话,则返回-1。
|
|
strObj.match(regexp):检查字符串把与正则模式所匹配的子字符串,以数组的形式输出。
|
|
strObj.replace( regexp,newStr | fn ):检查字符串与正则模式所匹配的子字符串,并替换。
|
|
strObj.split(regexp,n):切割字符串,返回数组格式的结果。第二个参数是限制返回的数组长度。
|
|
exec():查找当前字符串与正则模式所匹配的文本,最终存储在数组里;匹配不成功返回null。
|
|
参考资料:正则表达式 | MDN