1)正则表达式是一种表达文本模式
- 字面量声明固定正则表达式,/正则匹配模式/修饰符
- 构造函数声明动态正则表达式,new RegExp('正则匹配模式', '修饰符')
3)修饰符
- i 表示忽略大小写
- g 全局匹配
- m 换行匹配
4)只读属性
- ignoreCase 返回一个布尔值,表示是否设置了i修饰符,该属性只读
- global 返回一个布尔值,表示是否设置了g修饰符,该属性只读
- multiline 返回一个布尔值,表示是否设置了m修饰符,该属性只读
5)方法
- test() 正则对象的test方法返回一个布尔值,表示当前模式是否能匹配参数字符串
- exec() 正则对象的exec方法,可以返回匹配结果。如果发现匹配,就返回一个数组,成员是每一个匹配成功的子字符串,否则返回null
- compile() 修改正则表达式
6)预定义模式
- \\d 匹配0-9之间的任一数字,相当于[0-9]
- \\D 匹配所有0-9以外的字符,相当于[^0-9]
- \\w 匹配任意的字母、数字和下划线,相当于[A-Za-z0-9_]
- \\W 除所有字母、数字和下划线以外的字符,相当于[^A-Za-z0-9_]
- \\s 匹配空格(包括制表符、空格符、断行符等),相等于[\\t\\r\\n\\v\\f ]
- \\S 匹配非空格的字符,相当于[^\\t\\r\\n\\v\\f ]
- \\b 匹配词的边界
- \\B 匹配非词边界,即在词的内部
- . 查找所有字符,除了换行和行结束符
7)量词符
- ? 问号表示某个模式出现0次或1次,等同于{0, 1}
- * 星号表示某个模式出现0次或多次,等同于{0,}
- + 加号表示某个模式出现1次或多次,等同于{1,}
- n$ 匹配任何结尾为n的字符串
- ^n 匹配任何开头为n的字符串
- ?=n 匹配任何其后紧接指定字符串n的字符串
- ?!n 匹配任何其后没有紧接指定字符串 n 的字符串
8)贪婪模式和懒惰模式
- 贪婪模式 n.+ 或者 n.*
- 懒惰模式 n.+? 或者 n.*?
9)组
- 组匹配()内容
- RegExp.$n 获取第n个()中匹配的内容,n是从1开始的自然数,必须test()验证之后执行
10)常用正则表达式
- 验证数字(含小数、正负数) /^(-|\\+)?[1-9]?(0|([1-9]+\\d*))(\\.?\\d+)?$/
- 验证邮箱 /^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$/
- 验证手机号 /^(\\+86)?1[3456789]\\d{9}$/
- 必须含有大写字母,含有小写字母,含有数字 /(?=.*[A-Z]+)(?=.*[0-9]+)(?=.*[a-z]+)/
11)支持正则表达式的字符串API
- matct() 用于确定原字符串是否匹配某个子字符串,返回一个数组,成员为匹配的第一个字符串。如果没有找到匹配,则返回null
- search() 的用法等同于match,但是返回值为匹配的第一个位置。如果没有找到匹配,则返回-1
- replace() 用于替换匹配的子字符串,一般情况下只替换第一个匹配(除非使用带有g修饰符的正则表达式
- split() 按照给定规则分割字符串,返回一个由分割出来的子字符串组成的数组
閱讀更多 雨康 的文章