正则表达式
正则表达式介绍
定义 : 正则表达式是用于字符串匹配的(四个支持正则的方法 search 查找下标 macth 查找 数组 split 切割 replace替换)
正则表达式对象声明
1. new关键字声明 --- var regx = new RegExp("a")
2. 采用字面量方式
var box = /box/; console.log(box); // /box/
console.log(typeof box); //object
字符模板声明(*)
g ---- 全局搜索
i ---- 忽略大小写
正则对象执行方法
- exec --- 执行方法 --- 返回对应的执行对象数组 , 没有匹配的返回null
- test --- 判断是否匹配 --- boolean 匹配为true, 不匹配为false
String对象也提供了正则表达式方法
1. var str = "This is a Box box BoX";
var matchArr = str.match(/box/gi);
console.log(matchArr); //返回数组或null
2. str.replace(/box/gi, "xxx") ---查找并替换, 返回替换后的新字符串
3. str.search(/box/i); --- 查找并返回匹配的字符串的起始位置,找不到匹配的则返回-1
4. str.split(/b/i); --- 根据指定字符串拆分, 返回拆分后的数组, 否则返回原字符串
正则表达式的使用
- ^ ---非字符
- /^--- 匹配开始,从头开始匹配
- $/ --- 匹配结尾,从结尾开始匹配
- [ ] --- 表示一个元素
- { } --- 表示对应的个数 (相当于重复写n次)
- ( ) --- 分组 , 集成到一起 --- 可以作为一个整体进行多次匹配
var pattern = /(google){4,8}/; //匹配分组中的字符出现4-8次
- | --- 代表或者的意思, 匹配其中一种字符串
var pattern = /google|baidu|bing/; // | : 匹配三个中的其中一个字符串
- 字母的表示 --- [A-Za-z]
- 数字的表示 --- [0-9]
- \D --- 表示不是非数字 --- 相当于[^0-9] --- \D{7,}: 匹配至少7个非数字, 相当于[^0-9]{7,}
- \d --- 表示数字[0-9] --- \d* 表示任意多个数字
空白字符
- \s --- 表示空白字符 , 空格回车制表符等等
- \S --- 表示非空白字符
- \w --- 所有的数字以及字母, 还有下划线_ ---等价于[a-zA-Z0-9_] --- \w* :匹配任意多个数字字母下划线
- \W --- 不是字母 数字 和下划线
- 点 . 表示所有的内容都匹配 --- 不加开头结尾 --- var regx = /./
- m ---- 换行模式, 换行后又重新开始匹配
修饰符
- + ---- 表示一个到多个, 相当于 {1, } ---- [A-Z]+: 至少出现一个A-Z的字符
- ? ---- 0个到一个
- * ---- 0个到多个
注意事项:
- 中括号[ ] 里面的点会直接解析成点.
- 而不是所有的内容, 在对应的{ } 后面不能直接接修饰符, 如果要接,先要分组括起来
中文匹配正则 ---- [\u4e00-\u9fa5]
\ --- 转义符 -- 针对上面的修饰符,将其变为对应的字符
可以将本来有语义的字符没有语义, 这里的.和[]都是字符, 不代表任何正则匹配的语义
匹配(.) 使用\来进行转义
需要转义的内容 : [ ] ( ) { } . + ? / ^ $ ..
常用正则表达式
1. 邮政编码(共6位数字, 第一位不能为0) --- var pattern = /^[1-9]\d{5}$/;
2. 电子邮件(xxxx@xxx(.xxx)+) --- var str = "zh.an.san@1000phone.com"
3. 手机号(13或14或15或18开头的11位数字) --- var pattern = /^((13[0-9])|(14[5|7])(15([0-3]|[5-9]))|(18[05-9]))\d{8}$/;
4. 用户名(只能使用数字字母下划线, 且数字不能开头, 长度在6-15位) --- var pattern = /^[a-zA-Z_]\w{5,14}$/;
5. 删除多余空格 --- var pattern = /\s+/g;
6. 删除首尾空格 --- str.replace(/^\s+/, ""); str.replace(/\s+$/, "");
7. 身份证 --- var pattern = /^\d{17}(\d|X)$/;
8. 简单日期格式 --- var pattern = /^\d{4}\-\d{1,2}\-\d{1,2}$/;
9. 图片文件格式 --- var pattern = /\.(jpg|jpeg|gif)$/i;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构