在字面量方式中,我们// 之间包起来的所有的内容都是元字符,有的具有特殊的意义,大部分都是代表本身含义的普通的元字符
var reg = /^\d"+name+"\d+$/g;
console.log(reg.test("2011nihao2019"));//->false
console.log(reg.test('2015"""nameeee"2016')); //->true
对于这样的需求,我们只能使用实例创建的方式了:
var reg = new RegExp("^\\d+"+name+"\\d+$", "g");
console.log(reg.test("2018name2019"))//->true
字面量方式和实例创建的方式在正则中的区别?
1)字面量方式中出现的一切都是元字符,所以不能进行变量值的拼接,而实例创建的方式是可以的
2)字面量方式中直接写\d就可以,而在实例中需要把它转义\d
例:
1.年龄介于18~65之间 18-19 20-59 60-65
var reg = /^(1[8-9] | [2-5]\d | 6[0-5])$/;
2.验证身份证号码
var reg = /^\d{17}(\d | X)$/;
var reg = /^(\d{2}) (\d{4}) (\d{4}) (\d{2}) (\d{2}) (\d{2}) (\d) | (\d|X)$/;
3.验证邮箱的正则(简版)
邮箱左边:数字、字母、下划线、.、-
var reg = /^[\w.-]+@[0-9a-zA-Z]+(\.[a-zA-Z]{2,4}){1,2}$/
4.中国标准真实姓名 2-4位汉字
var reg = /^[\u4e00-\u9fa5]{2, 4}$/
网友评论