在代码中常简写为(regex、regexp或RE(regular expression)) 使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。

创建正则表达式

//1、利用RegExp对象来创建正则表达式

var regexp = new RegExp(/123/);

//2、利用字面量来创建正则表达式

var re = /123/;

//3、用test来检测字符串是否符合正则表达式的规范

console.log(re.test(123));//true

console.log(re.test('abc'));//false

//4、exec()方法用于检索指定值,返回被找到的值;如果没找到,则返回null

var re1 = new RegExp('o');
console.log(re1.exec('I love you'));

边界符

^匹配行首的文本

$匹配行尾的文本

^和$一起就是精确匹配

var re = /^123$/;

console.log(re.test(12345)); //false

console.log(re.test('abc'));//false

字符组合

//字符串组合

var re2 = /^[a-zA-Z0-9_-]$/;
console.log(re2.test('a'));
console.log(re2.test('A'));
console.log(re2.test(0));
console.log(re2.test('_'));

//方括号内部加^表示取反

var re2 = /^[^a-zA-Z0-9_-]$/;
console.log(re2.test('a'));
console.log(re2.test('A'));
console.log(re2.test('_'));

量词符

*可以出现0次或很多次,>=0

+可以出现1次或很多次,>=1

?可以出现1次或零次,1||0

{n}可以出现n次

{n,}可以出现>=n次

{n,m}可以出现>=n且<=m次

量词重复某个模式的次数

var re = /^[a-zA-Z0-9_-]{6,10}$/; 
//大等于6次小等于10次,同时次数中间不能有空格 
console.log(re.test('aaaaaa'));
console.log(re.test('aa09aa'));
console.log(re.test('aa_-aa'));