标签: 正则

  • 正则表达式

    创建正则语法

    let 变量名 = /表达式/

    其中 / / 是正则表达式的字面量

    判断是否是有符合规则的字符串

    test(): 用来查看字符串是否符合正则规则

    • 是符合,返回true
    • 不符合,返回false

    语法:正则表达式.test(被检测的字符串)

    检索(查找)符合规则的字符串

    exec(): 在字符串中搜索匹配的字符串部分

    语法:正则表达式.exec(被检测字符串)

    • 如果匹配成功,则返回一个数组
    • 如果匹配失败,则返回一个null
    let str = '我是测试文字'
    let reg = /文/
    let result = reg.exec(str)
    console.log(result) // 返回的是一个数组
    

    替换字符串

    replace()

    //要替换的字符串.replace(正则表达式,替换的内容)
    let str = '我是谁 你是谁 他是谁'
    let reg = /谁/g
    console.log(str.replace(reg, '你'))
    //我是你 你是你 他是你
    

    #使用正则表达式

    元字符

    有特殊含义,可以匹配更多规则,如:/[a-z]/

    #使用特殊字符

    边界符

    表示位置,开头和结尾,必须用什么开头,用什么结尾

    边界符含义
    ^匹配输入的开始。
    $匹配输入的结束。

    ^ 作为第一个字符出现在一个字符集合模式时,它将会有不同的含义.

    注意点:^$一起使用时,表示精准匹配,从头到尾都要符合,常用语表单校验

    量词

    表示重复次数

    量词含义
    *重复零次或更多次>=0
    +重复一次或更多次>=1
    ?重复0次或1次 0 || 1
    {n}重复n次==n
    {n,}重复n次或更多次>=n
    {n,m}重复n到m次n <= 次数 <= m

    注意点: 逗号左右两侧不能出现空格

    字符类

    特定的字符表示特定的匹配规则

    • [xxx] 只要字符串中有[]其中任何一个字符,就匹配成功
    console.log(/[abc]/.test('andy')) //a
    console.log(/[abc]/.test('baby')) //b
    
    • [] 里面有中划线 - ,表示一个范围 只要字符串的其中一个符合范围,就匹配成功
    [0-9] :0~9的范围
    [a-z] :a~z的范围
    [A-Z] :A~Z的范围
    [0-9a-zA-Z] :0~9 + a~z + A~Z 的范围
    
    • [] 里面有一个^表示取反 只有字符串中有一个符合范围,就匹配成功
    [^abc] :除了abc以外的字符
    
    • . 匹配除换行符以外的任何单个字符(如果加了s标志则可以匹配换行符)
    console.log(/.b/.test('abc')) //ab
    console.log(/.i/.test('liao')) //li
    

    注意点:换行符指的是js字符串中的换行,是\n,不是<br>

    预定义类

    预定义类含义
    \d匹配0-9的任意数字,相当于[0-9]
    \D匹配0-9以外的字符,相当于[^0-9]
    \w匹配任意的字母、数字和下划线,相当于[A-Za-z0-9_]
    \W除所有字母、数字和下划线以外的字符,相当于[^A-Za-z0-9_]
    \s匹配不可见字符,如:空格、换行\n、制表符tab \t
    \S匹配可见字符

    #预定义类

    修饰符(标志)

    语法:/表达式/修饰符

    标志描述
    g全局搜索
    i不区分大小写搜索
    s允许 . 匹配换行符
    console.log(/a/g.test('banana')) //a
    
    console.log(/a/i.test('A')) //A
    
    console.log(/a./s.test('ba na na')) //a空格
    

    #通过标志进行高级搜索

    详细内容请前往正则表达式 – JavaScript | MDN