• es6 正则表达式


    一、正则表达式概述?

    1.什么是正则表达式:用于匹配字符串中字符组合的模式,在js中,正则表达式是也是对象
    2.正则表达式通常用来检索、替换那些符合某个模式(规则)的文本,例如验证表单(匹配)、过滤页面中的一些敏感词(替换)、从字符串中获取我们想要的特定部分(提取)

    二、正则表达式的使用

    .在JavaScript中,可以通过两种方式创建一个正则表达式

    1.通过调用RegExp对象的构造函数创建

    	let regexp = new RegExp(/表达式/)
    	console.log(regexp) // /123/
    
    • 1
    • 2

    2.利用字面量创建正则表达式

    	let regexp = /123/
        console.log(regexp)
    
    • 1
    • 2

    三、测试正则表达式

    test():正则对象方法,用于检测字符串是否符合该规则,返回值为true或false

    	let reg = /123/ 
        console.log(reg.test(123)) //true
        console.log(reg.test('xbc')) //false
    
    • 1
    • 2
    • 3

    四、正则表达式的特殊字符

    1、边界符:

    在这里插入图片描述

    	//只要包含 abc 就可以
    	let reg = /abc/
        console.log(reg.test('abc')) //true
        console.log(reg.test('abcd')) //true
    
    	//必须以 abc 开头
    	let reg = /^abc/
        console.log(reg.test('abc')) //true
        console.log(reg.test('abcd')) //true
        console.log(reg.test('cbad')) //false
    
    	//只能是 abc
    	let reg = /^abc$/
        console.log(reg.test('abc')) //true
        console.log(reg.test('abcd')) //false
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    2、字符类:[ ] 表示有一系列字符可供选择,只要匹配其中一个就可以了

        //包含里面的任何一个字符都返回true
        let reg = /[abc]/
        console.log(reg.test('andy')) //true
        console.log(reg.test('baby')) //true
        console.log(reg.test('red')) //false
    
    	//三选一: 只能是a 或者b 或者c 这三个字母才返回 true
        let reg = /^[abc]$/
        console.log(reg.test('b')) //true
        console.log(reg.test('abc')) //false
        console.log(reg.test('andy')) //false
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    3、[-] 方括号内部 范围符号 -

    	//26个小写英文字母任何一个都返回 true
        let reg = /^[a-z]$/
        console.log(reg.test('a')) //true
        console.log(reg.test('y')) //true
        console.log(reg.test('A')) //false
        console.log(reg.test('abc')) //false
    
    	//26个英文字母任何一个都返回 true
        let reg = /^[a-zA-Z]$/
        console.log(reg.test('a')) //true
        console.log(reg.test('y')) //true
        console.log(reg.test('A')) //true
        console.log(reg.test('abc')) //false
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    4、如果 [ ] 里面有 ^ 表示取反的意思。

    	//如果中括号里面有 ^ 表示取反的意思
        let reg = /^[^a-zA-Z0-9_-]$/
        console.log(reg.test('a')) //false
        console.log(reg.test('y')) //false
        console.log(reg.test('A')) //false
        console.log(reg.test('!')) //true
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    5、量词符

    在这里插入图片描述

    // *:重复零次或更多次
    	let reg = /^a*$/
        console.log(reg.test('')) //true
        console.log(reg.test('a')) //true
        console.log(reg.test('aaa')) //true
        console.log(reg.test('abc')) //false
        
    // +:重复一次或更多次
    	let reg = /^a+$/
        console.log(reg.test('')) //false
        console.log(reg.test('a')) //true
        console.log(reg.test('aaa')) //true
        console.log(reg.test('abc')) //false
    
    // ?:重复零次或一次。
    	let reg = /^a?$/
        console.log(reg.test('')) //true
        console.log(reg.test('a')) //true
        console.log(reg.test('aaa')) //false
        console.log(reg.test('abc')) //false
    
    // {n}:重复 n 次。
    	let reg = /^a{3}$/
        console.log(reg.test('a')) //false
        console.log(reg.test('aaa')) //true
        console.log(reg.test('abc')) //false
    
    // {n,}:重复 n 次或更多次。
    	let reg = /^a{3,}$/
    	console.log(reg.test('a')) //false
        console.log(reg.test('aaa')) //true
        console.log(reg.test('aaaaaa')) //true
        console.log(reg.test('abc')) //false
        
    // {n,m}:重复大于等于 n 次且小于等于 m 次。
    	let reg = /^a{3,5}$/
        console.log(reg.test('a')) //false
        console.log(reg.test('aaa')) //true
        console.log(reg.test('aaaaa')) //true
        console.log(reg.test('abc')) //false
    
    //量词重复出现
    	//这个模式用户只能输入英文字母 数字 下划线 短横线 且 6-16 位
    	let reg = /^[a-zA-Z0-9_-]{6,16}$/
    	console.log(reg.test('study')) //false
        console.log(reg.test('andy-666')) //ture
        console.log(reg.test('andy!666')) //false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    6、预定义类

    在这里插入图片描述

    // \d:匹配 0-9 之间的任一数字,相当于 [0-9]
    	let reg = /^\d{1,5}$/
        console.log(reg.test(123)) //true
        console.log(reg.test('aa123')) //false
    
    // \D:匹配所有 0-9 以外的字符,相当于 [^0-9]
    	let reg = /^\D{1,5}$/
        console.log(reg.test('a-!')) //true
        console.log(reg.test('777')) //false
    
    // \w:匹配任意的字符、数字和下划线,相当于 [A-Za-z0-9_]。
    	let reg = /^\w{1,5}$/
        console.log(reg.test('a-!')) //false
        console.log(reg.test('Aa66_')) //true
    
    // \W:匹配除所有字母、数字和下划线以外的字符,相当于[^A-Za-z0-9_]
    	let reg = /^\W{1,5}$/
        console.log(reg.test('!')) //true
        console.log(reg.test('Aa66_')) //false
    
    // \s:匹配空格(包括换行符、制表符、空格符等),相当于 [\t\r\n\v\f] 。
    	let reg = /^\s{1,5}$/
        console.log(reg.test(' ')) //true
        console.log(reg.test('hi')) //false
    
    // \S:匹配非空格(包括换行符、制表符、空格符等)字符,相当于 [^\t\r\n\v\f]。
    	let reg = /^\s{1,5}$/
        console.log(reg.test(' ')) //false
        console.log(reg.test('hi')) //true
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
  • 相关阅读:
    第12讲:DVM 以及 ART 是如何对 JVM 进行优化的?
    iOS-设置指定边圆角(左上、左下等)
    Linux 线程调度策略简介分析 SCHED_OTHER SCHED_FIFO SCHED_RR
    mysql的left join原理【总结版本】
    黑马头条 后端项目部署_持续集成 Jenkins配置
    Linux进程地址空间
    vue3 自定义组件 v-model 原理解析
    【中移芯昇】5. spi接口测试tf卡
    SaleSmartly新增AI意图识别触发器!让客户享受更精准的自动化服务
    APM/PX4/betaflight/inav开源飞控之IMU方向
  • 原文地址:https://blog.csdn.net/Jenny_ljj/article/details/128132809