1.正则表达式的两种写法
var reg = /test/i;
var reg1 = new RegExp('test','i');
其中i为正则表达式修饰符
i : 执行对大小写不敏感的匹配。(匹配时忽略大小写)
g : 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m : 执行多行匹配。
2.支持正则表达式的 String 对象的方法
search:检索与正则表达式相匹配的值。
var reg = /[test]/g ;
var str = 'acvftst' ;
console. log ( str. search ( reg) ) ;
match:找到一个或多个正则表达式的匹配。
var reg = /[test]/g ;
var str = 'acvftst' ;
console. log ( str. match ( reg) ) ;
replace:替换与正则表达式匹配的子串。
var reg = /[test]/g ;
var str = 'acvftst' ;
console. log ( str. replace ( reg, 'a' ) ) ;
var str = 'aaaaaaaaabbbbbbbcccc' ;
var reg = /(\w)\1*/g ;
str. replace ( reg, '$1' ) ;
split:把字符串分割为字符串数组。
var reg = /[test]/g ;
var str = 'ascsvtftst' ;
console. log ( str. split ( reg) ) ;
3.方括号
[test]:查找括号中的任意字符
var reg = /[test]/g ;
var str = 'acvftst' ;
console. log ( str. match ( reg) ) ;
[^test]:查找不在括号中的字符
var reg = /[^test]/g ;
var str = 'acvftst' ;
console. log ( str. match ( reg) ) ;
[0-9]:查找任何从 0 至 9 的数字。
[a-z]:查找任何从小写 a 到小写 z 的字符。
[A-Z]:查找任何从大写 A 到大写 Z 的字符。
[A-z]:查找任何从大写 A 到小写 z 的字符。
var reg = /[0-9][a-z]/g ;
var str = '134acvf24tst' ;
console. log ( str. match ( reg) ) ;
(red|blue|green):查找任何指定的选项。
var reg = /[0-9]|[a-z]/g ;
var str = '134acvf24tst' ;
console. log ( str. match ( reg) ) ;
4.元字符
. : 查找单个字符,除了换行和行结束符。
var reg = /a.v/g ;
var str = '134acvf24tst' ;
console. log ( str. match ( reg) ) ;
\w : 查找单词字符。
\W : 查找非单词字符。
var reg = /\w/g ;
var str = '1ac4tt=!' ;
console. log ( str. match ( reg) ) ;
\d : 查找数字。
\D : 查找非数字字符。
\s : 查找空白字符。
\S : 查找非空白字符。
var reg = /\s/g ;
var str = '1ac 4tt=!' ;
console. log ( str. match ( reg) ) ;
\b : 匹配单词边界。
\B : 匹配非单词边界。
var reg = /\b4t/g ;
var str = '1ac 4tt=!' ;
console. log ( str. match ( reg) ) ;
\0 : 查找 NUL 字符。
\n : 查找换行符。
\f : 查找换页符。
\r : 查找回车符。
\t : 查找制表符。
\v : 查找垂直制表符。
5.量词
n+ : 匹配任何包含至少一个 n 的字符串。
var reg = /\d+/g ;
var str = '123ac42t1t=!' ;
console. log ( str. match ( reg) ) ;
n* : 匹配任何包含零个或多个 n 的字符串。
var reg = /\d*/g ;
var str = '123ac42t1t=!' ;
console. log ( str. match ( reg) ) ;
n? : 匹配任何包含零个或一个 n 的字符串。
var reg = /\d?/g ;
var str = '123ac42t1t=!' ;
console. log ( str. match ( reg) ) ;
n{X} : 匹配包含 X 个 n 的序列的字符串。
var reg = /\d{2}/g ;
var str = '123ac42t1t=!' ;
console. log ( str. match ( reg) ) ;
n{X,Y} : 匹配包含 X 至 Y 个 n 的序列的字符串。
var reg = /\d{2,3}/g ;
var str = '123ac42t1t=!' ;
console. log ( str. match ( reg) ) ;
n{X,} : 匹配包含至少 X 个 n 的序列的字符串。
var reg = /\d{2,}/g ;
var str = '1234ac42t1t=!' ;
console. log ( str. match ( reg) ) ;
n$ : 匹配任何结尾为 n 的字符串。
^n : 匹配任何开头为 n 的字符串。
var reg = /^\d{3}/g ;
var str = '123 123ac42t1t=!' ;
console. log ( str. match ( reg) ) ;
?=n : 匹配任何其后紧接指定字符串 n 的字符串。
var reg = /\d(?=\d{3})/g ;
var str = '123123ac42t1t=!' ;
console. log ( str. match ( reg) ) ;
?!n : 匹配任何其后没有紧接指定字符串 n 的字符串。
6.RegExp 对象方法
exec : 检索字符串中指定的值。返回找到的值,并确定其位置。
var reg = /ac/g ;
var str = '123123ac42t1t=!' ;
console. log ( reg. exec ( str) ) ;
console. log ( reg. lastIndex) ;
test : 检索字符串中指定的值。返回 true 或 false。
var reg = /ac/g ;
var str = '123123ac42t1t=!' ;
console. log ( reg. test ( str) ) ;