day22——正则表达式

正则表达式

零碎

1.匹配顺序为从左至右,例如表单验证案例中的密码提交
2. 网址验证中关键字(网站名)需要使用+ 匹配前面的子表达式1次或多次
3.身份证号码验证时的前六位:第一位不为0,其他五位可能为0!
4.空字符串的去除(使用正则+replace);其中replace的对象为正则表达式,例如:

在这里插入图片描述

  1. 使用正则匹配的原因:测试字符串内的模式。
  • 可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。
  • 替换文本。 可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。
  • 基于模式匹配从字符串中提取子字符串。 可以查找文档内或输入域内特定的文本。
  1. 正则对象的使用(主要考虑输出结果的区别)
    1) new一个正则对象赋值给变量,正则对象.test(值)或者变量对象.test(值),输出结果为truefalse
    var exp=/^[0-9]{5}$/;
    var reg=new RegExp(exp);
    var str="12345";
    console.log(reg.test(str));//true
    console.log(exp.test(str));//true

2) 直接通过值.match(),条件不满足返回null,满足则返回匹配的对象;此种方法最常使用!

 console.log(str.match(exp));//值同上

在这里插入图片描述

  1. 各种符号及含义

1) 非打印字符

在这里插入图片描述

2) 特殊字符(要使用转义字符)
在这里插入图片描述
3) 限定符
在这里插入图片描述
4)定位符

定位符使您能够将正则表达式固定到行首或行尾。它们还使您能够创建这样的正则表达式,这些正则表达式出现在一个单词内、在一个单词的开头或者一个单词的结尾。

在这里插入图片描述
关于^和$在匹配规则中的作用
基本模式匹配

模式是正则表达式最基本的元素,它们是一组描述字符串特征的字符。模式可以很简单,由普通的字符串组成,也可以非常复杂,往往用特殊的字符表示一个范围内的字符、重复出现,或表示上下文。

例如:

^once

这个模式包含一个特殊的字符^,表示该模式只匹配那些以once开头的字符串。例如该模式与字符串"once upon a time"匹配,与"There once was a man from NewYork"不匹配。

例如:

bucket$

正如如^符号表示开头一样,$符号用来匹配那些以给定模式结尾的字符串。
这个模式与"Who kept all of this cash in a bucket"匹配,与"buckets"不匹配。

例如

 ^bucket$

字符 ^ 和 $ 同时使用时,表示精确匹配字符串。只匹配字符串"bucket"。
例如:

once

与字符串
There once was a man from NewYork Who kept all of his cash in a bucket. 是匹配的。
如果一个模式不包括^和$,那么它与任何包含该模式的字符串匹配。

在该模式中的字母(o-n-c-e)是字面的字符,也就是说,他们表示该字母本身,数字也是一样的。

  1. 常见的几种正则验证
    1) 邮箱验证
    var ereg = /^\w{6,10}\@(qq|163|126)\.com$/;
    var email = "1823101695@qq.com";
    console.log(email.match(ereg));

2)手机号验证

    var pnReg = /1(3|4|5|6|8)\d{9}/;
    var phonenum = "12619242968";
    console.log(phonenum.match(pnReg));

3)网址验证 格式:https://www.baidu.com

    var wreg = /^(http|https)\:\/{2}www\.[0-9a-zA-Z]+\.com$/
    var web="https://www.12dD.com";
    console.log(web.match(wreg));

4)身份证验证

610523200010012569
年:1900-3999

    var idreg=/^[1-9]\d{5}(19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9xX]$/;
   var id="610523200010012569";
    console.log(id.match(idreg));

以上的输出结果分别为
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值