1.字面量
i 忽略大小写
g 全局匹配
m 多行匹配
var variable_name = /regular experssion/options;
eg:
var myReg = /love/;
var reObj = /san jose/ig;
2.RegExp() 构造函数
格式:
var variable_name = new RegExp(“regular expression”,“options”);
测试正则表达式
regExp()对象包含两个方法test()exec() 功能相似 用于测试字符串的匹配的匹配
exec 在字符串中执行匹配搜索 返回结果数组
test 在字符串中测试模式匹配 返回true 或者false
RegExp对象的属性
input 当前被匹配的字符串
lastmatch 最后一个匹配字符串
lastParen 最后一对圆括号内的匹配子串
leftContext 最后一次匹配前的子串
RegExp.∗ 标 示 是 否 多 行 匹 配 的 布 尔 值 R e g E x p . * 标示是否多行匹配的布尔值 RegExp.∗标示是否多行匹配的布尔值RegExp.& 最后一次匹配的字符
RegExp.输 入 的 执 行 匹 配 的 字 符 串 R e g E x p . _ 输入的执行匹配的字符串 RegExp.
输
入的执行匹配的字符串RegExp.’ 代表最后一次匹配模式前的子串
RegExp.‘ 代 表 最 后 一 次 匹 配 模 式 后 的 子 串 R e g E x p . ‘ 代表最后一次匹配模式后的子串 RegExp.‘代表最后一次匹配模式后的子串RegExp.+ 代表最后一一对括号内的模式的子串
RegExp.$1,$2,$3 捕获匹配到的字串
rightContext 最近一次匹配的字串
字符串得正则表达式的使用方法
String.match(regExp) 返回regExp 中的子串或null
String.replace(regExp,replacement) 用replacement替换regExp
String.search(regExp) 返回字符串中regExp的开始位置
String.split(regex) 从字符串中删除所有包含regex的子串
正则表达式
/[\t:,]/ 分隔符是制表符 冒号或逗号
[0-9] 表示0-9的数字
\d也表示数字 digit
/^a…c/ 表示以a开头 .表示任意字符 c结尾 形如abbbc a232c adecc等
元字符
字符类:单个字符和数字
. 匹配除换行符外的任意字符
[a-z0-9] 匹配括号中的字符集中的任意字符
[^a-z0-9] 匹配任意不在括号中的字符集中字符
\d 匹配数字
\D 匹配非数字 同[^0-9]
\w 匹配字母
\W 匹配非字母
字符类:空白字符
\0 匹配null字符
\b 匹配空格字符
\f 匹配进纸字符
\n 匹配换行符
\r 匹配回车字符
\s 匹配空白字符 空格 制表符或换行符
\S 匹配非空白字符
\t 匹配制表符
字符类:错字符
^ 行首匹配
$ 行尾匹配
\A 只匹配字符串开始的地方
\b 匹配单词边界 词在[] 内时无效
\B 匹配非单词边界
\G 匹配当前搜索的开始位置
\Z 匹配字符串结束处或行尾
\z 只匹配字符串结束处
字符类:重复字符
x? 匹配0个或1个x
x* 匹配0个或任意多个x
x+ 匹配至少一个x
(xyz)+ 匹配至少一个xyz模式
x{m,n} 匹配最少m个 最多n个x
字符类:替代字符
was|were|will 匹配was或者were或will
字符类:记录字符
(string) 用于反向引用
\1或$1 匹配第一对括号中的内容
\2或$2 匹配第二对括号中的内容
\3或$3 匹配第三对括号中的内容
分组或聚合
/(ma)/ 或/(John|Joe)Brown/ 匹配JohnBrown JoeBrown
/(ma)+/ 匹配形如ma mama mamama
记录与捕获
将正则表达式模式括在括号里,产生的子模式也可被捕获 子模式存储在特殊编号的类属性中 从$1开始后面是$2
var aa = "AB EF";
var bb = /(\w+)\s(\w+)/;
aa.replace(bb,"$2,$1"); //"EF,AB"