• 第十一周·前端学习笔记--正则表达式


    1.正则表达式对象的构建

    //该对象的参数是一个匹配字符串,说明一种规则。
    //let regObj = new RegExp(/xyz/);--写法1
    let regObj = /abc/;--写法2(常用) //正则表达式对象,我们经常使用字面量的方式去构建,方便好用,这是一种语法糖(syntax sugar)

    // 正则表达式的基本使用
    console.log(regObj.test("abc"));//控制台显示 true
    console.log(regObj.test("xyz"));//控制台显示false

    //let car = {} //字面量方式来构建一个对象

    2.正则表达式对象的边界管理

    //以abc开头--在开头加 ^
    let regObj = /^abc/;
    console.log(regObj.test("abc"));
    console.log(regObj.test("xyzabc"));

    //以abc结尾--在末尾加 $
    let regObj2 = /abc$/;
    console.log(regObj2.test("abcxyz"));
    console.log(regObj2.test("xyzabc"));

    //精准匹配,只有abc才行--在开头加 ^,在末尾加 $
    let regObj3 = /^abc$/;
    console.log(regObj3.test("abcxyzabc"));
    console.log(regObj3.test("xyzabc"));
    console.log(regObj3.test("abc"));

    3.正则表达式对象的字符管理

    1)字符的范围管理( - 范围符)

    //[]只管一个字符,其内部的内容是一个字符的集合,匹配其中任意一个字符即可通过

    //a或b或c开头都可以
    let regObj_1 = /^[abc]/;
    console.log(regObj.test('andy'));
    console.log(regObj.test('david'));
    console.log(regObj.test('boy'));

    //要以a或b或c开头+固定oy结尾
    let regObj_2 = /^[abc]oy/;
    console.log(regObj.test('andy'));
    console.log(regObj.test('david'));
    console.log(regObj.test('boy'));

    // - 范围符号
    //只要是a到z开头就行
    let regObj_3 = /^[a-z]/;
    console.log(regObj.test('andy'));
    console.log(regObj.test('Andy'));

    //只要是a到z开头或A到Z开头就行
    let regObj_4 = /^[a-zA-Z]/;
    console.log(regObj.test('andy'));
    console.log(regObj.test('Andy'));

    //只要是a到z开头或A到Z开头就行,也可以有数字范围,也可以加符号(例如+、*)
    let regObj_5 = /^[a-zA-Z6-9+*]/;
    console.log(regObj.test('andy'));
    console.log(regObj.test('Andy'));
    console.log(regObj.test('723'));
    console.log(regObj.test('+123'));

    2)模式匹配频率设置(量词符)

    //第一个字符是数字,第二个字符是字母
    let regObj = /^[0-9][a-z]/;
    console.log(regObj.test('1andy'));
    console.log(regObj.test('12andy'));

    //量词符分类(粗略)
    //第一种:* : 0-n次
    let regObj3 = /^[0-9]*/;
    console.log(regObj3.test('51234537437434394'));
    console.log(regObj3.test(''));
    //第二种:+ : 1-n次
    let regObj4 = /^[0-9]+/;
    console.log(regObj3.test('51234537437434394'));
    console.log(regObj3.test(''));
    //第三种:?: 0次或者1次
    let regObj5 = /^[0-9]?/;
    console.log(regObj3.test('a1234537437434394'));
    console.log(regObj3.test(''));

    //量词符分类(精细)
    //第一种:{n} : n次
    let regObj6 = /^[0-9]{3}/;
    console.log(regObj3.test('33a'));
    console.log(regObj3.test('331'));
    //第二种 1:{n,m} : 至少n到m次
    let regObj7 = /^[0-9]{3,6}/;
    console.log(regObj3.test('33a'));
    console.log(regObj3.test('3312qa'));
    //第二种 2:{n,m} : 只有n到m次
    let regObj8 = /^[0-9]{3,6}$/;
    console.log(regObj3.test('33123'));
    console.log(regObj3.test('331123433'));
    //第二种 3:{n,} : 大于等于n次
    let regObj7 = /^[0-9]{3,}/;
    console.log(regObj3.test('33a'));
    console.log(regObj3.test('3312qa'));

    //以非0-9数字开头--^[^]:取反
    let regObj9 = /^[^0-9]/;
    console.log(regObj.test('andy'));
    //d代表数字,D代表非数字(元字符)
    //以0-9数字开头--^[d]=^[^0-9] d:digital
    let regObj10 = /^[d]/;
    console.log(regObj.test('andy'));
    //以非数字开头
    let regObj = /^[D]/;
    console.log(regObj.test('andy'));

  • 相关阅读:
    String comparison is too slow in R language
    R语言之正则表达式
    Java日期时间(Date/Time)
    Java 字符串拆分(拆分字符串)
    vue总是报缩进、空格的错
    解决在Vue项目中时常因为代码缩进导致页面报错的问题
    Cordova+Vue快速搭建Hybrid App
    npm i和npm install的区别
    hybrid cordova+vue开发APP(一) 环境搭建
    vue-cli中理不清的assetsSubDirectory 和 assetsPublicPath
  • 原文地址:https://www.cnblogs.com/Chen-Pei-Wen/p/12906989.html
Copyright © 2020-2023  润新知