javascript关于正则表达式
概述
正则表达式是用于字符串匹配的 (四个支持正则的方法 search 查找 下标 macth 查找 数组 split 切割 replace 替换)
1.正则表达式对象声明
1.1 new关键词声明
- var regx = new RegExp("a")
1.2 字符模板 声明 (*)
- g 全局搜索
- i 忽略大小写
- var regex = /a/gi
2. 正则表达式的使用
2.1 正则匹配元字符
- [] 表示里面任意的一个元素
- ^ 表示开头
- $ 表示结尾
- {} 表示个数
- {n}表示n个
- {n,m}表示n到m个
- {n,}表示n到无穷个
- + 表示一个到多个{1,}
- * 表示0到多个{0,}
- ? 表示0到一个{0,1}
- . 表示所有的内容,包括中文字符
- [.]表示字符.
var regx2=/[a-z]{6}/ //表示6个小写的字母 regx2=/[a-z]{0}/ //表示0个字母 regx2=/[a-z]{1,3}/ //表示1到三个 regx2=/[a-z]{1,}/ //表示1个到无穷个
// + 1个到多个 var regx=/^[abc]+$/ //表示其中一个元素 console.log('a'.match(regx));//a console.log('ac'.match(regx));//ac console.log('abebc'.match(regx));//null console.log(regx.test(''));//false 至少要有一个a或b或c console.log(regx.test('aaebb'));//false 只能是能含a b c不能含有其他 console.log(regx.test('abcabc'));//true //? 0到1个 console.log('ab'.match(/^[a,b,c]?$/));//null ?只能0个或1个 var regx1=/^[1234]?[abcd]$/ console.log(regx1.test('a'));//true 只能有一个或多个 console.log(regx1.test('2a'));//true 前面可以有一个或者没有 console.log(regx1.test('ab'));//false a b c d里面只能有一个 //* 0到多个 regx=/^[123]+[456][789]*$/ //表示开头1 2 3至少有一个,4 5 6选一个,7 8 9表示可以有也可以没有 console.log(regx.test('1235'));//true 1 2 3可以有多个 console.log(regx.test('47'));//false 1 2 3必须要有一个 console.log(regx.test('15'));//true 7 8 9可以有多个也可以一个都没有 //. 表示所有内容 regx=/^.$/ console.log(regx.test('abc'));//false 只能有一个 console.log(regx.test('h'));//true console.log(regx.test('好'));//true regx=/^[.]+$/ console.log(regx.test('h'));//false [.]里面的设别为. console.log(regx.test('.'));//true
- \w 表示对应的字母数字下划线
- \W表示不是字母数字下划线
- \d表示数组
- \D表示非数字
- \s表示空白字符串(回车 制表 空格)
- \S表示不是空白字符
regx=/^\w[123]{2}\w+$/ //有数字或字母下划线开头 中间必须有两个1 2 3中的两个 结尾有一到多个数字或字母下划线 console.log(regx.test('_11a'));//true console.log(regx.test('a15'));//false 1 2 3中必须要有一个 console.log(regx.test('a123'));//true
2.2()分组()括号里面的必须全都有
regx=/^(\w\d\S){3}[0-9]+([123][456])+$/ console.log(regx.test('123123123014'));//true console.log(regx.test('1231231230146'));//false console.log(regx.test('12312312312312345'));//false 结尾必须要有1 2 3中的一个,4 5 6中的一个 console.log(/^[\w]+([123456])+$/.test('abc1'));//true console.log(/^[\w]+(123456)+$/.test('abc1'));//false 123456必须全都有 console.log(/^[\w]+(123456)+$/.test('abc123456'));//true
2.3 | 或者 只要有一个就是对的
regx=/^a|b$/ console.log(regx.test('a'));//true console.log(regx.test('b'));//true console.log(regx.test('aa'));//true
2.4 转义
//匹配 ? * + . 等元字符 转义\ regx=/^[?]$/ console.log(regx.test('?'));//true regx=/^[*]$/ console.log(regx.test('*'));//true //转义字符 regx=/^\*$/ console.log(regx.test('*'));//true regx=/^\?$/ console.log(regx.test('?'));//true regx=/^\.$/ console.log(regx.test('.'));//true
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端