基于javascript上手正则表达式
2016-02-23 13:00
489 查看
正则表达式用于字符串比配,由于其高效性可以大幅度减少服务器端开销。
常用正则比较方法
RegExp对象的静态方法
RegExp的实例属性
获取控制
贪婪和惰性
前瞻捕获:例:/goo(?=gle)/ 当goo后紧跟gle时才进行捕获,捕获返回goo
常用正则表达式
两种创建方式: var box = new RegExp("box","ig"); var box1 = /box/ig; /** 第二个参数可选模式修饰符 i : 忽略大小写 g : 全局匹配 m : 多行匹配 **/ |
test 正则对象(RegExp)的正则比较,返回true/false。使用方法:RegExpObject.test(String) exec 正则对象的正则比较,返回匹配的字符串。使用方法:RegExpObject.exec(String) 当 RegExpObject 是一个全局正则表达式时,exec() 的行为就稍微复杂一些。它会在 RegExpObject 的 lastIndex 属性指定的字符处开始检索字符串 string。当 exec() 找到了与表达式相匹配的文本时,在匹配后,它将把 RegExpObject 的 lastIndex 属性设置为匹配文本的最后一个字符的下一个位置。这就是说,您可以通过反复调用 exec() 方法来遍历字符串中的所有匹配文本。当 exec() 再也找不到匹配的文本时,它将返回 null,并把 lastIndex 属性重置为 0。 match 字符串方法的正则比较,返回匹配的字符串数组。使用方法:String.match(RegExpObject ) replace 字符串方法的正则比较,返回匹配替换后的字符串。使用方法:String.replace(RegExpObject, "replacement") search 字符串方法的正则比较,返回第一个匹配到字符串的位置,查找不到返回-1。使用方法:String.search(RegExpObject ) split 字符串方法的正则比较,以匹配到的字符作为分隔,将原有字符串拆分成数组,返回数字。使用方法: String.match(RegExpObject ) |
input:当前被匹配的字符串 lastMatch:最后一个匹配字符串 lastParen:最后一对圆括号内的子字符串,分组 leftContext:匹配之前的子字符串 multiline:所有表达式是否都用于多行,布尔值。 rightContext:匹配之后的子字符串 |
global:g 属性是否被设置 ignoreCase:i 属性是否被设置 multiline:m 属性是否被设置 source:正则的源字符串 lastIndex:exec后的index |
单个字符和数字 | . 匹配除换行符外的任意一个字符 [a-z0-9] 匹配括号中字符集中的任意字符 [^a-z0-9] 匹配不在括号中字符集中的任意字符 \d 匹配数字 \D 匹配非数字 \w 匹配字母和数字及_ \W 匹配非字母和数字及_ |
空白字符 | \0 匹配null字符 \b 匹配空格字符 \n 匹配换行符 \r 匹配回车字符 \t 匹配制表符 \s 匹配空格、空白、制表和换行符 \S 匹配非空白字符 |
锚字符 | ^ 行首匹配 $ 行尾匹配 \A \b 匹配边界 \B \G \Z \z |
重复字符 | x? 匹配0个或1个x x* 匹配0个或多个x x+ 匹配至少1个x (xyz)+ 匹配至少1个(xyz) x{m,n} 匹配{m,n}区间个x |
替换字符 | | 或操作 |
记录字符 | () 分组,分组后相当于一个整体的字符 \1或$1 匹配第一个分组 \2或$2 匹配第二个分组 |
贪婪:可匹配的最大限度 惰性:可匹配的尽量少 |
常用正则表达式
邮政编码:var postCode = /[1-9]\d{5}/ 文件压缩包:var packages = /^[\w\-]+\.zip|rar|tar|gz/ 删除多余空格:String.replace(/\s/g,"") 电子邮件:var email = /^([\w\.\-]+)@([\w\.\-]+)\.([a-zA-Z]{2,4})$/ |
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- msql 正则表达式
- 正则表达式
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解