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));