js正则--笔记
js正则--笔记
1.正则是什么?
是匹配字符串中字符组合的模式,也就是根据规则匹配相应的字符串
2.怎么使用
// 通过new RegExp创建
var regExp = new RegExp(/456/);
// 直接量
var regExp2 = /abc/;
// 正则表达式对象方法 test() 检测某字符串是不是符合规则
// 返回值true表示有符合规则的字符组合
console.log(regExp2.test('abcde'));//true
console.log(regExp2.test('abdde'));//false
console.log(regExp.test(456));//true
3.常用正则
边界符
// ^ 匹配行首的文本 以谁开头
// $ 匹配行尾的文本 以谁结束
var regExp1 = /^abc/;
console.log(regExp1.test('abcdd'));//true
console.log(regExp1.test('acabcdd'));//false
var regExp2 = /fd$/;
console.log(regExp2.test('abcdfd'));//true
console.log(regExp2.test('acafdcdd'));//false
// 精确匹配
var regExp3 = /^aazz$/;
console.log(regExp3.test('aazz'));//true
console.log(regExp3.test('aazzz'));//false
字符类
var regExp1 = /[xyz]/; // 字符串有xyz三个其中一个字符
console.log(regExp1.test("abcd"));//false
console.log(regExp1.test("abxcd"));//true
console.log(regExp1.test("abycd"));//true
var regExp2 = /^[xyz]$/; // 只能是x或者y或者z
console.log(regExp2.test("x"));//true
console.log(regExp2.test("xy"));//false
console.log(regExp2.test("z"));//true
var regExp3 = /^[0-9a-z]$/;//只能是0-9或者a-z
console.log(regExp3.test(3));//true
console.log(regExp3.test('a3')); // false
// 中括号的^表示取反
var regExp4 = /^[^0-9a-z]$/;
console.log(regExp4.test('5')); // false
console.log(regExp4.test('a')); // false
console.log(regExp4.test('A')); //true
量词类
// *表示可以出现0次或多次 >=0 {0,}
// +表示可以出现1次或多次 >=1 {1,}
// ?表示可以出现1次或0次 0 || 1 {0,1}
let regExp1 = /^c*$/;//不管什么都成立
let regExp2 = /^c+$/;//出现1次或多次
let regExp3 = /^c?$/;//出现1次或不出现
let regExp4 = /^c{3}$/;//重复3次
let regExp5 = /^c{3,}$/;//至少3次
let regExp6 = /^c{3,5}$/;//3次~5次
预定义规则
/*
* \d —— 数字[0-9] —— 例子:a\dc —— a1c
* \D —— 非数字[^\d] —— 例子:a\Dc —— adc
* \s —— 空白字符[<空格>\t\r\n\f\v] —— 例子:a\sc —— a c
* \S —— 非空白字符[^\s] —— 例子:a\Sc —— a1c
* \w —— 单词字符[a-zA-Z0-9] —— 例子:a\wc —— a1c
* \W —— 非单词字符[^\w] —— 例子:a\Wc —— a c
* */
修饰符
* g global 全局匹配
* i ignore 不区分大小写
* m more 多行匹配
* u unicode 根据utf-8匹配(针对汉字)
* y 粘贴匹配 匹配连续的不能隔开