首页 > IT职业 > IT图书 > js笔记四十六之正则表达式(2)
在正则中字面量创建方式和实例创建方式是有区别的
在字面量方式中, // 之前包起来的所有内容都是元字符,有的具有特殊意义,大部分都是代表本身含义的普通元字符
var name = "lilei";var reg = /^d+"+name+"d+$/console.log(reg.test("2017lilei2018")); // -> falseconsole.log(reg.test('2017""nameee"2018')); // -> true
对于这样的需求,我们只能使用实例创建的方式
var name = "lilei";var reg = new RegExp("^\d+" + name + "\d+$", "g");console.log(reg.test("2017lilei2018")); // -> true
规律
[] 在中括号中出现的所有字符都是代表本身意思的字符(没有特殊的含义)
[] 中括号中不识别两位数
有效数字正则 -> 正数/负数/零/小数
.可以出现也可以不出现,但是一旦出现,后面必须跟着一位或者多位数字最开始可以有
+/-也可以没有整数部分,一位数可以是0-9之间的一个,多位数不能以0开头
var reg = /^[+-]?(d|([1-9]d+))(.d+)?$/
var reg1 = /^[12]$/; // -> 1或者2var reg2 = /^[12-68]$/ // -> 1/2-6/8三个中的一个var reg3 = /^[w-]$/ // ->数字,字母,下划线,- 中的一个
区别
a. 字面量方式中出现的一切都是元字符,所以不能进行变量值的拼接,而实例创建方式是可以的
b. 字面量方式中直接写 d 就可以,而在实例中需要把它转义 \d
实例
年龄介于18-65之间
var reg = /^(1[8-9]|[2-5]d|6[0-5])$/console.log(reg.test(16)) // -> falseconsole.log(reg.test(18)) // -> trueconsole.log(reg.test(25)) // -> trueconsole.log(reg.test(47)) // -> trueconsole.log(reg.test(65)) // -> trueconsole.log(reg.test(88)) // -> false
验证邮箱的正则(简版)
@ 左边:数字,字母,下划线, . , -
var reg = /^[w.-]+@[0-9a-zA-Z]+(.a-zA-Z)[2,4]{1,2}$/
中国标准真实姓名 2-4 位汉字
var reg = /^[u4e00-u9fa5]{2,4}$/
身份证号码
// 简版var reg = /^d{17}(d|X)$/;// 进阶版var reg = /^d{2}d{4}d{4}d{2}d{2}d{2}d(d|X)$/
作者:uplyw
链接:https://www.jianshu.com/p/555098f9b2d8
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1678/viewspace-2813729/ ,如需转载,请注明出处,否则将追究法律责任。