下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

web前端:Javascript正则

作者: ♪(o∀o)っ     来源: https://www.cnblogs.com/woheni/p/11294856.html点击数:795发布时间: 2020-02-29 17:04:11

标签: javascripthtmlweb前端

Web开发

  Javascript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在html(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

  正则的定义

  字符出现的规律的一种规则!

  正则的作用

  验证和查找

  创建正则

  1、varreg=/输入正则规则/;注意://内部是正则的天下,不支持js语法!

  2、varreg=nerRegExp();//了解即可,不需要强记!

  正则的语法

  1、关键词的原文就是最简单的正则

  2、字符集:一个字符可能出现的备选字符的集合

  eg::政[治法协]匹配:政治政法政协

  常见字符集:如果备选字符的Unicode编码是连续的,可以省略中间的字符,用“-”链接

  eg:[0123456789]<=>0-9[abcdefg]<=>[a-g]

  预定字符集:预先已经规定好的字符集

  eg:\\w:一个字母数字下划线\\d一个数字[0-9]

  \\s空格,制表符

  .任意字符

  ^除了xxx

  量词:修饰一个字符集出现的次数!

  1、有明确的数量要求或者范围

  字符集{m,n}m:表示字符集出现的最小次数!n:表示字符集出现的最大次数!

  字符集{m}:至少出现m次,至多不限!

  字符集{m}:只能必须是m次

  2、没有明确的数量要求

  字符集?:可有可无,至多一次。等价于{0,1}

  字符集+:至多一次,多了不限。等价于{1,}

  字符集*:可有可无,次数不限。等价于{0,}

  注意:如果正则规则中有特殊含义的字符,可以使用转义字符"\\"

  选择和分组

  1、选择:在多个规则之间任选其一都可以匹配!

  操作:规则1|规则2:只要有一个规则适用即可!

  2、分组:将多个规则分为一组,由一个量词修饰!

  操作:()eg:(+8610086)?eg:(微/w(ei)?)(信/x(in)?)

  匹配指定位置

  1、开头:^^\\s以空格开头

  2、结尾:$\\s$以空格结尾

  eg:^\\d{6}:以六位数字开头

  \\d{6}$:以六位数字结尾

  ^\\d{6}$:字符串只能是六位数字组成

  3、单词边界:\\b

  eg:no\\b匹配以no结尾的单词

  \\bno匹配以no开头的单词

  \\bno\\b匹配完整的单词no

  案例:

  1、身份证340881199812120827

  18位身份证号码的验证规则:^(\\d{17}[0-9xX])$

  或15位数字+2位数字+一位数字或者X或者x:^\\d{15}(\\d{2}[0-9Xx])?$

  2、手机号:6085255解析:0086|+86空格|60852559位数

  9位数号码的验证规则:^(0086|86)?\\s*|[6085255]\\d[{9}$

  字符串的API

  1、查找敏感词

  0.查找关键词的下标----固定的敏感词

  vari=str.indexOf("关键词",starti);

  从starti位置开始向后找最近的一个关键词的下标,找到就返回其下标,找不到返回-1。

  1.判断是否包含敏感词----模糊查找

  str.search(/正则/);

  //找第一个关键词的下标,找到就返回其下标,找不到返回-1。

  2.查找所有敏感词内容----返回数组内容

  str.match(/正则/g);

  问题:1>默认正则只要匹配到一个关键词就下标了!

  解决:在正则的第二个/后gglobal

  2>正则默认区分大小写

  解决:在正则的第二个/后加iignore

  3.既查找敏感词内容又查找敏感词位置----正则对象

  reg.exec();----正则对象中的

  2、替换:将符合要求的关键词替换为指定内容

  1.简单替换

  str.replace(/正则/g,"需要替换的新值");

  注意:此处替换的新值是固定的!

  2.高级替换

  functionkws(key){

  key.length==2?return"**":

  key.length==3?return"***":

  return"*"

  }

  str.replace(/正则/g,kws);

  注意:replace方法每找到一个关键词,会调用一次回调函数,将关键词传入,由回调函数替代的值!

  3、切割:split将字符串按指定的关键词切割为多个子字符串,放在一个数组返回!

  1.简单切割:vararr=str.split("切割符");

  2.复杂切割:vararr=str.aplit(/正则/);

  常用套路:vararr=str.aplit("");

  相反操作:varstr=arr.join("");

  正则对象

  1、RegExp对象:封装了一条正则规则,提供了操作正则验证、或查找API的一类对象!

  2、创建正则对象:

  1.直接量:varreg=/正则/ig;

  问题:此方法正则一旦建立,无法通过Js直接修改

  2.用new

  varreg=newRegExp("正则","ig");

  优点:正则是字符串形式,可以使用js语法!

  RegExp的API

  1、验证字符串格式

  varbool=reg.test(str);

  验证字符串是否符合正则规则,返回bool

  可以直接当作判断条件

  验证必需前加^后加$

  2、既查找关键词内容又查找关键词位置

  reg.exec(str);

  查找str中下一个关键词的位置和内容,返回一个数组

  0:关键词的内容index:关键词的位置

  注意:默认第一次查找从0号位置开始;以后每执行一次,都从上一次结束的位置之后***开始;找不到就返回null。

  javascript组成一个完整的JavaScript实现是由以下3个不同部分组成的:JavaScript核心(ECMAScript)、文档对象模型(DocumentObjectModel,简称DOM)、浏览器对象模型(BrowserObjectModel,简称BOM)。

赞(15)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程