当前位置: 首页 > news >正文

【JavaScript】36_正则表达式

正则表达式

正则表达式

  • 正则表达式用来定义一个规则
  • 通过这个规则计算机可以检查一个字符串是否符合规则

或者将字符串中符合规则的内容提取出来

  • 正则表达式也是JS中的一个对象,

所以要使用正则表达式,需要先创建正则表达式的对象

new RegExp() 可以接收两个参数(字符串) 1.正则表达式 2.匹配模式

     <script>let reg = new RegExp('a','i')//通过一个构造函数来创建一个正则表达式的对象//使用字面量来创建正则表达式:/正则/匹配模式reg = /a/ireg = /\w/reg = new RegExp('\w')console.log(reg)​reg = new RegExp('a')//  /a/表示,检查一个字符串中是否有a// 通过正则表达式检查一个字符串是否符合规则let str = "a"let result = reg.test(str) // true​result = reg.test("b") // falseresult = reg.test("abc") // trueresult = reg.test("bcabc") // true​reg = /a/console.log(result);</script>

语法

1.在正则表达式中大部分字符都可以直接写 2.| 在正则表达式中表示或 3.[] 表示或(字符集) [a-z] 任意的小写字母 [A-Z] 任意的大写字母 [a-zA-Z] 任意的字母 [0-9]任意数字 4.[^] 表示除了 x 除了x

  1. . 表示除了换行外的任意字符
  2. 在正则表达式中使用\作为转义字符
  3. 其他的字符集 \w 任意的单词字符 [A-Za-z0-9 ] \W 除了单词字符 [^A-Za-z0-9] \d 任意数字 [0-9] \D 除了数字 0-9 \s 空格 \S 除了空格 \b 单词边界 \B 除了单词边界
  4. 开头和结尾 ^ 表示字符串的开头 $ 表示字符串的结尾
     <script>let re = /abc|bcd/re = /[a-z]/re = /[A-Z]/re = /[A-Za-z]/re = /[a-z]/i // 匹配模式i表示忽略大小写re = /[^a-z]/ // 匹配包含小写字母以外内容的字符串re = /./re = /./​re = /\w/re = /^a/ // 匹配开始位置的are = /a$/ // 匹配结束位置的are = /^a$/ // 只匹配字母a,完全匹配,要求字符串必须和正则完全一致re = /^abc$/let result = re.test('aa')console.log(result)</script>

量词

{m} 正好m个

{m,} 至少m个

{m,n} m-n个

  • 一个以上,相当于{1,}
  • 任意数量的a

? 0-1次 {0,1}

     <script>let re = /a{3}/re = /^a{3}$/re = /^(ab){3}$/re = /^[a-z]{3}$/re = /^[a-z]{1,}$/re = /^[a-z]{1,3}$/re = /^ba+$/re = /^ba*$/re = /^ba?$/let result = re.test("baa")console.log(result)</script>

re.exec()

  • 获取字符串中符合正则表达式的内容
     <script>let str = "abcaecafcacc"​//提取出str中复合axc格式的内容//g 表示全局匹配let re = /a(([a-z])c)/ig​let result = re.exec(str)console.log(result)​while(result){console.log(result[0],result[1],result[2])result = re.exec(str)}</script>

练习

     <script>/* dajsdh13715678903jasdlakdkjg13457890657djashdjka13811678908sdadadasd​用自己的语言来把描述出来1    3         5017890871    3到9之间   任意数字 x 9*/let re = /1[3-9]\d{9}/gre = /(1[3-9]\d)\d{4}(\d{4})/glet str ="dajsdh13715678903jasdlakdkjg13457890657djashdjka13811678908sdadadasd"let result​while (result = re.exec(str)) {// console.log(result[0], result[1], result[2])console.log(result[1]+"****"+result[2])}re = /^1[3-9]\d{9}$/console.log(re.test("13456789042"))</script>
http://www.lryc.cn/news/37965.html

相关文章:

  • 参考 | 辨别真假笔记本三星内存条 (ddr4)
  • JavaScript Math(算数)对象
  • MyBatis里面用了多少种设计模式?
  • 第三十二周精华分享(2023.02.27-2023.03.06)
  • 数学建模资料整理
  • 设计模式---抽象工厂模式
  • Java Web 实战 07 - 多线程基础之单例模式
  • uniapp上实现左右关联滚动
  • Docker Remote API未授权访问
  • 【蓝桥杯】第十四届蓝桥杯模拟赛(第三期)C++ (弱go的记录,有问题的话求指点)
  • 算法24:LeetCode_并查集相关算法
  • TypeScript核心知识点
  • 基于“遥感+”融合技术在碳储量、碳收支、碳循环等多领域监测与模拟实践
  • 外卖点餐系统小程序 PHP+UniAPP
  • vuex3的介绍与state、actions和mutations的使用
  • windows 自带端口转发
  • 【算法】算法基础入门详解:轻松理解和运用基础算法
  • 2.9.1 Packet Tracer - Basic Switch and End Device Configuration(作业)
  • AtCoder Beginner Contest 216(F)
  • 每天学一点之Stream流相关操作
  • MatCap模拟光照效果实现
  • 二十一、PG管理
  • SAPUI5开发01_01-Installing Eclipse
  • Qt之高仿QQ系统设置界面
  • JVM概览:内存空间与数据存储
  • 固态存储设备固件升级方案
  • Python交通标志识别基于卷积神经网络的保姆级教程(Tensorflow)
  • 基于Selenium+Python的web自动化测试框架(附框架源码+项目实战)
  • Python进阶-----高阶函数zip() 函数
  • win10打印机拒绝访问解决方法