^ $
var reg = /d+/; //=>包含某某某即可,这里说明包含1到多个数字即可 var str = '我的2017兜兜有糖2018'; reg.test(str) =>true reg=/^d+/; reg.test(str) =>false reg=/^d+$/;//=>只能是某某某的,这里说明只能是1到多个数字 reg.test('2017'); =>true reg.test('2017兜兜有糖2018'); =>false reg.test('2'); =>true ^或者$只是一个修饰或者声明,不会占据字符串的位置
斜杠
var reg = /^2.3$/; reg.test('2.3'); =>true reg.test('2+3'); =>true 点在正则中的意思:匹配除了 以外的任意字符,而不是单纯的小数点 reg = /^2斜杠.3$/; reg.test('2.3'); =>true reg.test('2+3'); =>false 使用转义字符把点转换为本身小数点的意思
x|y
var reg = /^18|19$/;//=>18 19 189 119 819 181 1819 ... 很多都符合这个规则 /* * 18或者19 * 以1开头 以9结尾 中间是8或者1 * 以18开头或者以19结尾即可 =>'18兜兜有糖' '兜兜有糖19'... */ var reg = /^(18|19)$/;//=>此时只有18或者19符合我们的规则了
():正则中的分组,也可以理解为一个大正则中的一个正则(包起来的部分是一个整体);在正则中我们可以使用小括号改变一些默认的优先级;
小分组还有第二个作用:分组引用
小分组的第三个作用:分组捕获
//=>分组引用:1 或者 2 ...出现和第N个分组一模一样的内容 var reg = /^([a-z])([a-z])2([a-z])$/; //=> 符合的字符串:foot、book、week、attr、http...
[] : [xyz] [^xyz] [a-z] [^a-z]
//=>w:数组字母下划线中的任意一个字符 var reg = /^[a-zA-Z0-9_]$/; //=>等价于w //=>中括号中出现的元字符,一般都代表本身的含义 var reg = /^[.?+&]+$/; //=>里面的四个元字符都是本身含义,例如:点就是小数点了,不是所谓的任意字符... //=>需求:描述样式类名的规则(数字、字母、下划线、-),并且不能以-开头 //var reg = /^[w-]+$/; //var reg = /^[0-9a-zA-Z_-]+$/; //=>没有处理以-开头的情况 var reg = /^w[w-]*$/;
//=>需求:验证18~65之间的年龄 //var reg = /^[18-65]$/; //=>1或者8~6或者5中的任意一个字符,中括号中出现的18不是数字18, 而是1或者8,当前正则是非法的:因为不能设置8~6这种范围 //=>分三个阶段处理: // 18 或者 19 /(18|19)/ // 20 ~ 59 /([2-5]d)/ // 60 ~ 65 /(6[0-5])/ var reg = /^((18|19)|([2-5]d)|(6[0-5]))$/;