zoukankan      html  css  js  c++  java
  • 第十一周·前端学习笔记--正则表达式

    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'));

  • 相关阅读:
    awk处理实记
    unity自动转换资源文件
    unity语音聊天之 www.GetAudioClip
    Unity屏蔽emoji
    UGUI Font模糊
    unity打光报错:Mesh doesnt have albedo UVs,Please creat them in your modelling package
    js的运行机制问题
    关于javaWeb中的路径问题总结
    关于TomCat上传文件中文名乱码的问题
    JavaSE阶段初期的一些问题
  • 原文地址:https://www.cnblogs.com/Chen-Pei-Wen/p/12906989.html
Copyright © 2011-2022 走看看