RegExp正则表达式基础
2024-09-06 16:47:48
什么是正则表达式
正则表达式用于对字符串模式匹配及检索替换
如何创建正则
有两种创建正则的方法:
- js风格
new RegExp(pattern [, flags])
- perl风格
/pattern/[flags]
定位符
- ^ 字符串的开始
- $ 字符串的结束
元字符
罗列几个简单常用的:
- . 查找单个字符,除了换行和行结束符。
- \w 查找单词字符。
- \W 查找非单词字符。
- \d 查找数字。
标识flags
- i 执行对大小写不敏感的匹配。
- g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
- m 执行多行匹配。
量词
如果不加量词,默认一个
- {8} 8个
- {3,10} 3~10
- {5,} 最少5个
- + | {1,}大于等于1个
- {0,}可以没有
- ? | {0,1}有或者没有
方括号[]
- [0-9] 0~9任意一个
- [^0-9] 排除0~9
- [a-z0-9A-Z] 任意数字,字母大小写
正则的方法
test方法:reg.test(str)
,返回一个布尔值,如果匹配到了返回true
/abc_\d$/.test('abc_efg_abc_3') // return true
exec方法:reg.exec(str)
如果匹配成功,exec() 方法返回一个数组,并更新正则表达式对象的属性。返回的数组将完全匹配成功的文本作为第一项,将正则括号里匹配成功的作为数组填充到后面。
如果匹配失败,exec() 方法返回 null。
/a/.exec('ccc_a_b') // return ['a']
正则的字符串方法
- search 检索与正则表达式相匹配的值
- match 找到一个或多个正则表达式的匹配
- replace 替换与正则表达式匹配的子串
- split 把字符串分割为字符串数组
正则表达式验证手机号
正确匹配一个11位的手机号码
一般手机号的网段有:13x,15x,17x,18x
/^(13\d|15\d|17[789]|18\d)\d{8}$/
参考资料
- https://www.runoob.com/jsref/jsref-obj-regexp.html
- https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp
最新文章
- 2015 ACM/ICPC EC-Final
- BZOJ4196——noi2015软件包管理器
- 二维数组去除重复值和array_unique函数
- exjs3.2的gridPanel的表头总宽度与列的总宽度不一致的解决方案
- hadoop2.x通过Zookeeper来实现namenode的HA方案以及ResourceManager单点故障的解决方案
- Xcode文件目录选中变成白色, 解决方案
- hdu 3047 Zjnu Stadium
- DevExpress gridcontrol添加了复选框删除选中的多行/批量删除的方法
- Debian 8 下安装持续集成的工具Jenkins
- GO的初始简书(一)简介安装
- 柔弱的APP如何自我保护,浅谈APP防御手段,使用360加固助手加固/签名/多渠道打包/应用市场发布
- Oracle Service Bus 11g 的三种方案
- Linux 安装golang
- python命名空间与作用域
- unigui 调用js
- django2.0内置分页
- BZOJ4919:[Lydsy1706月赛]大根堆(set启发式合并)
- OLEDB 命令转换组件的用法
- 编译安装 http
- 15. DML, DDL, LOGON 触发器