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

Js:正则表达式(一)

1、字面量创建正则表达式

语法: /a/

let hd = "houdunren"; /a/.test(hd); // true

2、使用对象创建正则表达式

语法: let reg = new RegExp("xxx");

let hd = "houdunren"; let reg = new RegExp("a", "g"); reg.test(hd); // true

3、选择符的使用

语法: /a|b/

let language = "cn"; /en|cn/.test(language); // true

4、原子表与原子组中的选择符

定义:

原子表:在一组字符中匹配某个元字符,在正则表达式中通过元字符表来完成,就是放到[]中,并且原子表中部分字符不需要转义(例如:小数点.)

原子组:没有添加g修正符时只匹配到第一个,匹配到的信息包含0-匹配到的完整内容,1,2...-匹配到的原子组,index-元字符串中的位置,input-原字符串,groups-命名分组,在match中使用原子组匹配,会将每个组数据返回到结果中

语法: 原子表[]、原子组()

console.log(/[12345]/.test("12")); // true console.log(/(12|34)/.test("1324")); // false // 原子表的基本使用 let date = "2022-09-03"; reg = /^\d{4}([-\/])\d{2}\1\d{2}$/; console.log(date.match(reg)[0]); //2022-09-03 console.log("2022-12/08".match(reg)); //null console.log("2022/12/08".match(reg)); // [ '2022/12/08', '/', index: 0, input: '2022/12/08', groups: undefined ]
<!-- 邮箱验证原子组的使用 --> <input type="text" name="mail"> <span></span> <script> let mail = document.querySelector("[name=mail]").addEventListener("keyup", function () { let reg = /^[\w-]+@([\w-]+\.)+(com|org|cc|cn|net)$/i; document.querySelector("span").innerHTML = reg.test(this.value) ? "success" : "failed"; }); </script>

5、转义的理解

原因: 有些字符在正则语法中有不同的含义,例如 点(.)第一个含义是除换行符外任何字符,第二个含义才是普通点,这时需要第二个点含义就需要转义(\.)

语法: \. \d

6、字符边界约束

语法:^-开始边界 $-结束边界

let flag = "qwasas".match(/^[a-z]{3,6}$/); // true

7、数值与空白字符

语法: 数值-\d 匹配多个数组(贪婪)-\d+ 空白字符(包括换行符\n)-\s

反向匹配: 非数值-\D 非空白字符-\S

//数值匹配 console.log(/\d/.test("12asa34asa")); // true console.log(/\d/.test("abc")); // false // 多数值匹配 console.log(/\d+/.test(1234)); // true console.log(/\d+/.test(1234.45)); // true // 空白字符匹配 console.log(/\s/.test("asa")); // false console.log(/\s/.test(" asa")); // true console.log(/\s/.test("\nasa")); // true // 非数值匹配 console.log(/\D/.test(1234)); // false console.log(/\D/.test("abc1234")); // true // 非空字符匹配 console.log(/\S/.test("asa")); // true console.log(" asa".match(/\S/g)); // [ 'a', 's', 'a' ]

8、w与W元字符

定义: \w-数值+字母+下划线 \W-非数值非字母非下划线

//['d', 'o', 'u', 'd', 'u','n', 'r', 'e', '1', '2','2', '1', '2', '1', '1','w', 's', 'a', '_'] console.log("doudunre1`22121@1wsa_*&*^".match(/\w/g)); console.log("doudunre1`22121@1wsa_*&*^".match(/\W+/g)); // [ '`', '@', '*&*^' ]
http://www.cnnetsun.cn/news/1603205.html

相关文章:

  • 数据科学入门宝典:Awesome Public Datasets完整使用指南
  • ssm+java2026年毕设停车场信息管理系统【源码+论文】
  • SenseVoice-Small ONNX轻量化方案:低配CPU/GPU也能跑的中文语音识别工具
  • Thorium浏览器:基于Chromium的性能怪兽,重新定义现代网页浏览体验
  • Youtu-VL-4B-Instruct源码呈现:车载HUD界面理解+驾驶提示生成效果
  • 【Mojo与Python混合编程终极指南】:20年性能工程师亲授5大避坑法则与3个生产级实战模板
  • 剧本杀创作指南2025,解析,提升玩家沉浸感与互动性
  • ESP32-S3开发板USB直连烧录MicroPython固件全攻略(Win/Mac双平台)
  • 【问题解决】| 微服务项目Nacos启动失败的三种典型情况与解决方案
  • 【MIT-BEVFusion代码精讲】LiDAR Encoder:从点云体素化到稀疏卷积的工程实现
  • 点点赛:专业的羽毛球比赛系统
  • Windows HID设备内核级过滤架构深度解析与实战部署方案
  • Agent的决策模糊
  • ZeroTier 网络下 DNS 配置全攻略:从官方设置到私有部署
  • 告别手动分发!用Advanced Installer 22.2把任意EXE打包成MSI,实现域控一键静默部署
  • 3大维度突破存储困境:Czkawka开源工具的技术解构与实战指南
  • 从FTP到FTPS:NASA CDDIS数据下载政策变迁与我们的技术应对
  • GD32开发环境搭建全攻略:从Keil5配置到离线包安装避坑指南
  • 实战经验分享:为什么在PyTorch项目中我更推荐使用torch.from_numpy()
  • 加载预处理后的脑电数据(假设你已经用MNE处理过数据)
  • 如何通过AdMob中介最大化广告收益:从基础配置到高级竞价策略
  • K8s节点IP变更实战:从规划到验证的完整操作手册
  • pvr.iptvsimple技术解构:IPTV直播系统构建的底层逻辑与实践指南
  • Phi-4-mini-reasoning 128K上下文实战:跨章节教材内容关联推理演示
  • 5分钟生成时尚大片:The Leather Archive AI穿搭实验室入门指南
  • Penpot开源设计工具Docker部署完整教程:从零搭建企业级设计协作平台
  • 国产化环境实战:银河麒麟V10 SP2+Oracle19c完整安装流程解析
  • Android功耗优化实战:从电量统计到性能调优的完整指南
  • BilibiliDown终极指南:3步实现B站视频批量下载与高效管理
  • 【多智能体】基于多智能体一致性算法通过交流多个机器人的位置信息,最终实现所有机器人位置的一致附Matlab代码