什么是正则表达式?
- 正则表达式是由一个字符序列形成的搜索模式。
- 当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。
- 正则表达式可以是一个简单的字符,或一个更复杂的模式。
- 正则表达式可用于所有文本搜索和文本替换的操作。
定义规则让计算机去处理字符串
正则表达式一般写法:
第一种
var reg = new RegExp('ab');
第二种
var reg = /ab/;
JavaScript量词:{}
- {3} 出现次数为最多3次
- {1,4} 1 <= 出现次数 <= 4
- {1,} 最少出现1次,简写 +
- {0,} 至少0次,简写*
- {0,1} 最少0次,最多1次,简写?
JavaScript字符集:[ ]
-
[a-z] 从小写a-z
-
[A-Z] 大写A-Z
-
[0-9] 0-9
-
[^a] 除了a以外的
JavaScript匹配子集:()
var str = 'abcvbcafbc';
console.log( str.match( /(bc)+/g ) );//输出结果为:
["bc", "bc", "bc"]
JavaScript标识:
- g : 搜索整个字符串
- i : 不区分大小写
var str = 'abcvBcafbc'; str.match( /(bc)+/gi )
整个字符串搜索,不区分大小写
JavaScript元字符:
- ^ -------> 字符串开始
- $ -------> 字符串结束
- \d ------> 数字
- \w ------> 匹配数字、字母、下划线
- \s ------> 匹配任意空白符
常用反义词
- \D ------> 非数字
- \W ------> 匹配任意不是字母,数字,下划线,汉字的字符
- \S ------> 匹配任意不是空白符的字符
- [^x] ----> 匹配除了x以外的任意字符
- [^abcfg] -> 匹配除了aeiou这几个字母以外的任意字符
- [\u2E80-\u9FFF] --> 匹配中文汉字
JavaScript小实例
验证QQ号:
/^[1-9]{1}\d{4,8}$/
验证邮箱:
/^(\w+|\w+(\.\w+))+@(\w+\.)+\w+$/
验证手机号
/^1[35789]\d{9}$/
固定电话
/^0\d{2,3}(((\-|\_)\d{7,8}$)|(\d{7,8}$))/
身份证
/^[1-9]\d{5}1[89]\d{2}((0[1-9])|(1[012]))((0[1-9])|((1|2)[0-9])|(3[01]))\d{3}(\d|X)$/i