在代码中常简写为(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'));