浅学正则表达式

概念:

正则表达式在程序中代表一种规则,它是一种符号语言,需要理解每一个符号表示的含义。

应用场景:

1.表单验证

2.网页信息敏感词替换

3.字符串中提取我们想要的部分

......

使用:

网址:"https://www.runoob.com/regexp/regexp-tutorial.html"

步骤:

1.定义正则:let 正则变量 = /正则要求/,//不可加引号

2.通过正则验证内容

a.正则变量.test('要被验证的内容');返回值为布尔值,true表示符合规则,false表示不符合规则

b.正则变量.exec('要被验证的内容');返回为null表示不符合规则,返回数组表示符合规则

元字符:

在正则表达式中具有特殊含义的符号(字符)

元字符分类:

边界符:

^:表示开始,以什么开始

$:表示结束,以什么结束

他们同时使用时表示精确匹配,表示当前内容,不能有其它值

量词符:

+:表示出现的次数一次或者更多次(至少出现一次)

?:表示出现的次数0次或者1次(最多1次)

*:表示出现的次数0次或多次(若干次)

{n}:表示出现的次数等于n次

{n,}:表示至少出现n次

{n,m}:表示出现n到m次

复制代码
let reg = /^ab{2}$///精确匹配,abb开头结束
let str = 'abb'
let str1 = 'aabb'
let str2 = 'abab'
console.log(reg.test(str))//true
console.log(reg.test(str1))//false
console.log(reg.test(str2))//false

字符类:

字符集:

\[\]:表示的含义内容中只要包含其中一个值即可

值-值:表示的含义内容中包含从某个值到某个值范围内的值即可

\^值:\[\]里面的^表示取反

.:/./匹配除换行符之外的任何单个字符,在字符串中,如果要表示换行通过换行符实现、\r\n

复制代码
let reg = /[abc]///匹配abc中的任何单个字符
let reg1 = /[a-z]///匹配26个小写英文子母其中的任何单个字符,-表示一个范围,从某个值到某个值的范围内
let reg2 = /[a-zA-Z]///匹配大小写字母都可以
let reg3 = /[^a-z]///匹配除了26个小写英文子母之外的其它任何单个字符,^取反符号([]中括号内)
let reg4 = /^[1-9][0-9]{4,}$///匹配从10000开始的所有数字
let reg5 = /^[a-zA-Z0-9_]{6,16}$///匹配6-16位英文数字下划线的内容

预定义类:

指某些常见模式的简写方式,大写和小写是完全相反

字符串替换

修饰符:

修饰符约束正则执行的某些细节行为,如是否区分大小写、是否支持多行匹配等

语法:/表达式/修饰符

i是单词ignore的缩写,正则匹配时字母不区分大小写

g是单词global的缩写,匹配所有满足正则表达式的结果

复制代码
let str = 'abbcabb'
let reg6 = /a/g
let reg7 = /a/i

replace替换

语法:字符串.replace(/正则表达式/,'替换的文本')

复制代码
let str = 'abbcabb'
let reg = /sb|激情/g  //|表示或者的意思,就是多类替换
console.log(str.replace(reg, '**'));//abb**cab**b
相关推荐
deepdata_cn6 分钟前
向量数据库是非结构化数据的AI检索底座
数据库·人工智能
梁辰兴7 分钟前
软件工程:数据库设计
数据库·软件工程·数据库设计·逻辑设计·概念设计·梁辰兴·物理设计
10mAh18 分钟前
【Git】误删分支、reset --hard 后提交丢了怎么办?——reflog、fsck 与安全恢复实战
数据库·git·安全·回归
J_bean19 分钟前
剖析 MySQL InnoDB 共享行锁 (S) & 排他行锁 (X)
数据库·mysql·共享行锁·s lock·排他行锁·x lock
Lumistory23 分钟前
城市景观亮化设施维护管养的核心痛点与标准化解决方案
数据库·光照贴图
技术长镜头41 分钟前
别再只说“走 B+Tree”:一条 SQL 在 InnoDB 中的完整寻址过程
后端·mysql
倒流时光三十年1 小时前
第六阶段 57 · ES|QL 与 SQL API(用 SQL 查 ES)
数据库·sql·elasticsearch
努力进修2 小时前
“数据心脏” 驱动能源自主:国产数据库支撑 Cemsol 实现固井全流程数字化闭环
数据库·人工智能·能源
vHelios2 小时前
SQL不会写?不会找关联表?复杂SQL语句编写逻辑实现思路请查收✉
数据库·sql
DB哥讲数据库2 小时前
【ClickHouse安装教程】从零开始部署高性能列式数据库(附ClickHouse安装包)
数据库·clickhouse