为了账号安全,请及时绑定邮箱和手机立即绑定

js笔记四十六之正则表达式(2)

标签:
JavaScript

在正则中字面量创建方式和实例创建方式是有区别的

  1. 在字面量方式中, // 之前包起来的所有内容都是元字符,有的具有特殊意义,大部分都是代表本身含义的普通元字符

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
元字符应用

规律

  1. [] 在中括号中出现的所有字符都是代表本身意思的字符(没有特殊的含义)

  2. [] 中括号中不识别两位数

  • 有效数字正则 -> 正数/负数/零/小数

  1. .可以出现也可以不出现,但是一旦出现,后面必须跟着一位或者多位数字

  2. 最开始可以有 +/- 也可以没有

  3. 整数部分,一位数可以是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

  • 实例

  1. 年龄介于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
  1. 验证邮箱的正则(简版)

@ 左边:数字,字母,下划线, . , -

var reg = /^[\w.-]+@[0-9a-zA-Z]+(\.a-zA-Z)[2,4]{1,2}$/
  1. 中国标准真实姓名 2-4 位汉字

var reg = /^[\u4e00-\u9fa5]{2,4}$/
  1. 身份证号码

// 简版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


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消