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

3.正则表达式

3.1什么是正则表达式

●正则表达式( Regular Expression) 是用于匹配字符串中字符组合的模式。在JavaScript中, 正则表达式也是对象
●通常用来查找、替换那些符合正则表达式的文本,许多语言都支持正则表达式

●正则表达式在JavaScript中的使用场景:
➢例如验证表单:用户名表单只能输入英文字母、数字或者下划线,昵称输入框中可以输入中文(匹配
➢比如用户名:/ ^[a-z0-9_ -]{3,16}$/
➢过滤掉页面内容中的一-些敏感词(替换),或从字符串中获取我们想要的特定部分(提取)等。

3.2语法

JavaScript中定义正则表达式的语法有两种,比较简单的一种方法:

1.定义正则表达式语法:

const变量名= /表达式/

➢其中/ /是正则表达式字面量
●比如:
const reg = /前端/

2.判断是否有符合规则的字符串:
test() 方法 用来查看正则表达式与指定的字符串是否匹配
●语法:

reg.test(被检测的字符串)

●比如:
在这里插入图片描述
●如果正则表达式与指定的字符串匹配,返回true,否则false

3.检索(查找)符合规则的字符串:
exec() 方法 在一个指定字符串中执行一个搜索匹配
●语法:

regObj.exec(被检测字符串)

●比如:
在这里插入图片描述
●如果匹配成功,exec() 方法返回一个数组,否则返回null

3.3元字符

●普通字符:
大多数的字符仅能够描述它们本身,这些字符称作普通字符,例如所有的字母和数字。
也就是说普通字符只能够匹配字符串中与它们相同的字符。
●元字符(特殊字符)
是一些具有特殊含义的字符,可以极大提高灵活性和强大的匹配功能
➢比如,规定用户只能输入英文26个英文字母,普通字符的话abcdefghijklm…
➢但是换成元字符写法: [a-z]
●参考文档:
MDN:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions
正则测试工具: http://tool.oschina.net/regex

1.边界符
●正则表达式中的边界符 (位置符) 用来提示字符所处的位置,主要有两个字符
在这里插入图片描述
如果^和 $ 在一起,表示必须是精确匹配。
【例如】

console.log(/^哈/.test('哈')) //true
console.log(/^哈/.test('2哈')) //false
console.log(/^哈$/.test('哈')) //true
console.log(/^哈$/.test('哈哈')) //false

2.量词
量词用来设定某个模式出现的次数
在这里插入图片描述
注意:逗号左右两侧千万不要出现空格

3.字符类:
(1) [ ] 匹配字符集合
●后面的字符串只要包含abc中任意一个字符,都返回true
在这里插入图片描述
在这里插入图片描述
(2) [ ] 里面加上-连字符
●使用连字符表示一个范围

console.log(/^[a-z]$/.test('c')) // true 

●比如:
➢[a-z] 表示a到z 26个英文字母都可以
➢[a-zA-Z] 表示大小写都可以
➢[0-9] 表示0~9的数字都可以
●比如:
腾讯QQ号: ^[1-9][0-9]{4,}$ (腾讯QQ号从10000开始)

(3) [ ] 里面加上^取反符号
●比如:
[^a-z] 匹配除了小写字母以外的字符
➢注意要写到中括号里面

(4) . 匹配除换行符之外的任何单个字符

(5)预定义:指的是某些常见模式的简写方式。
在这里插入图片描述

3.4修饰符

●修饰符约束正则执行的某些细节行为,如是否区分大小写、是否支持多行匹配等
●语法:
/表达式/修饰符
➢i是单词ignore的缩写,正则匹配时字母不区分大小写
➢g是单词global的缩写,匹配所有满足正则表达式的结果

console.log(/a/i.test('a')) // true
console.log(/a/i.test('A')) // true

●替换replace替换
●语法:

字符串.replace(/正则表达式/,'替换的文本')
http://www.lryc.cn/news/117978.html

相关文章:

  • 【学习FreeRTOS】第3章——FreeRTOS移植及配置文件
  • Java算法_ LRU 缓存(LeetCode_Hot100)
  • Hugging Face 的文本生成和大语言模型的开源生态
  • Docker Compose用法详解
  • 分布式链路追踪概述
  • css中的var函数
  • 第五次作业 运维高级 构建 LVS-DR 集群和配置nginx负载均衡
  • neo4j电影库-关系查询
  • 2020/10-2023/7 Notes
  • 在UOS系统中管理ORACLE数据库
  • 以http_proxy和ajp_proxy方式整合apache和tomcat(动静分离)
  • 【pinia】Pinia入门和基本使用:
  • Linux 文件系统(一)系统目录
  • 『CV学习笔记』Opencv和PIL Image以及base64编码互相转化
  • 行业追踪,2023-08-07
  • CSRF 攻击和 XSS 攻击分别代表什么?如何防范?
  • RabbitMQ: 详解、使用教程和示例
  • redis NOAUTH Authentication required 可能不是密码问题
  • 动态规划解0-1背包问题(超详细理解)
  • 有哪些可能引起前端安全的问题?
  • 【Unity实战100例】用户头像圆形遮罩使用Shader不用Mask组件
  • arm-linux-gnueabihf-g++ gcc编译、优化命令 汇总
  • vmwera中安装的centos8出现ifconfig不可用
  • 线性表中的时间复杂度
  • ensp与虚拟机搭建测试环境
  • linux内核中的 指针 和 unsigned long
  • STM32--GPIO
  • 剑指 Offer ! 61. 扑克牌中的顺子
  • 《玩转Python数据分析专栏》大纲
  • Zabbix自动注册服务器及部署代理服务器