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       粘贴匹配        匹配连续的不能隔开
posted @ 2020-06-13 10:20  彼_岸  阅读(160)  评论(0编辑  收藏  举报