什么是正则表达式

正则表达式用于对字符串模式匹配及检索替换

如何创建正则

有两种创建正则的方法:

  • 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}$/

参考资料

最新文章

  1. 2015 ACM/ICPC EC-Final
  2. BZOJ4196——noi2015软件包管理器
  3. 二维数组去除重复值和array_unique函数
  4. exjs3.2的gridPanel的表头总宽度与列的总宽度不一致的解决方案
  5. hadoop2.x通过Zookeeper来实现namenode的HA方案以及ResourceManager单点故障的解决方案
  6. Xcode文件目录选中变成白色, 解决方案
  7. hdu 3047 Zjnu Stadium
  8. DevExpress gridcontrol添加了复选框删除选中的多行/批量删除的方法
  9. Debian 8 下安装持续集成的工具Jenkins
  10. GO的初始简书(一)简介安装
  11. 柔弱的APP如何自我保护,浅谈APP防御手段,使用360加固助手加固/签名/多渠道打包/应用市场发布
  12. Oracle Service Bus 11g 的三种方案
  13. Linux 安装golang
  14. python命名空间与作用域
  15. unigui 调用js
  16. django2.0内置分页
  17. BZOJ4919:[Lydsy1706月赛]大根堆(set启发式合并)
  18. OLEDB 命令转换组件的用法
  19. 编译安装 http
  20. 15. DML, DDL, LOGON 触发器

热门文章

  1. P1007 N钱M鸡问题
  2. Git用在公司项目上的操作
  3. H3C使用ping命令--用户视图
  4. vue-learning:8-template-v-on-and-modifier
  5. hdu 2454 Degree Sequence of Graph G(可简单图化判定)
  6. C语言中的优先级和类型转换分析
  7. java_回文检测
  8. 0017 CSS 三大特性:层叠性、继承性、优先级
  9. 软件包查询-rpm查询常用命令
  10. Java高级特性——流