js正则笔记

正则笔记需要自取
?=###: 表示已 ### 开头的内容
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        var string = "#ffbbad #Fc01DF #FFF #ffE";
        var regex = /#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})/g
        console.log(string.match(regex));

        // 匹配时间
        // 23:59
        // 02:07
        // 7:9

        // var regex = /^([02][0-9]|[2][0-3]:[0-5][0-9])/
        // var regex = /^([02][0-9]|[2][0-3]:[0-5][0-9])/

        // console.log(regex.test("23:59"));  // true
        // console.log(regex.test("02:07"));  // true

        // 匹配日期
        // 2022-12-26
        // var regex = /^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][1-9]|3[0-1])/
        // console.log(regex.test("2022-12-26"));  // true

        // 匹配id
        // var string = '<div id="container" class="main"></div>';
        // var regex = /id=".*?"/

        // console.log(string.match(regex)[0]);  // match方法返回一个数组在返回的数组中选中下标获取自己想要的值

        // 替换字符串
        // var string = 'hello'
        // var newArr = string.replace(/^|$/g, '@');
        // console.log(newArr);

        // 多行匹配模式
        // var result = "I\nlove\njavascript"
        // var newArr = result.replace(/^|$/gm, '#')
        // console.log(newArr);

        // 匹配某个字符前插入
        // var string = 'hello'
        // var newArr = string.replace(/(?=l)/g, '#')
        // console.log(newArr);

        // 在某个字符以外的字符插入
        // var string = 'hello'
        // var newArr = string.replace(/(?!l)/g, 'www')
        // console.log(newArr);  // wwwhwwwellwwwowww

        // // 千分分割
        // // 先进行最后一个三位数的分割
        // var string = '12345678'
        // var newArr = string.replace(/(?=\d{3}$)/g, ',')
        // console.log(newArr); // 12345,678

        // // 在每三位分割
        // var str = string.replace(/(?=(\d{3})+$)/g, ',')
        // console.log(str); // 12,345,678

        // // 匹配非开头的情况
        // var arr = '123456789'
        // var newStr = arr.replace(/(?!^)(?=(\d{3})+$)/g, ',')
        // console.log(newStr); // 123,456,789

        // // 匹配非数字开头非数字结尾
        // var num = '12345678 123456789'
        // var newNum = num.replace(/(?!\b)(?=(\d{3})+\b)/g, ',')
        // console.log(newNum); // 12,345,678 123,456,789

        // 字符替换
        // var arr = '2022-12-28'
        // var newArr = arr.replace(/(\d{4})-(\d{2})-(\d{2})/g, "$3/$2/$1")
        // console.log(newArr);

        // 去掉字符串前后空格(函数trim用法)
    //     var arr = ' footer '
    //     var str = arr.replace(/^\s+|\s+$/g, '')
    //     console.log(arr); //  footer 
    //     console.log(str); // footer

    //     // 匹配html标签(成对标签)
    //     // 匹配一个开标签,可以使用正则 <[^>]+>,
    //     // 匹配一个闭标签,可以使用 <\/[^>]+>,

    // //    var regex = /<([^>]+)>[\d\D]*<(\/[^>]+)>/
    //    var regex = /<([^>]+)>[\d\D]*<\/\1>/

    //    var str1 =  '<title>regular expression</title>'
    //    var str2 =  '<p>laoyao bye bye</p>'
    //    var str3 = "<title>wrong!</p>";
    //    var Arr = console.log(regex.test(str1)); // true
    //    var Arr = console.log(regex.test(str3)); // false

    // 正则验证
    // 1,验证某个字符串中是否存在数字(search()方法)
    // search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。
    // indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
    // var str = 'sq1dcgjdk/'
    // var regex = /\d/
    // console.log(!!~str.search(regex)); // true // search()找到后stringObject 中第一个与 regexp 相匹配的子串的起始位置。 没找到返回-1
    // ~为取反位运算符  ~2 = -3 (true)

    // 2,验证某个字符串中是否存在数字(test()方法)
    // console.log(regex.test(str)); // true
    
    // 3,验证某个字符串中是否存在数字(match()方法)

    // console.log(str.match(regex));

    // 替换
    // 1,  日期替换
    // var data = '2023-01-05' // 更换成 2023/01/05
    // var regex = data.replace(/-/g, '/')
    // console.log(regex);

    // \b 是单词边界,具体就是 \w 与 \W 之间的位置,也包括 \w 与 ^ 之间的位置,和 \w 与 $ 之间的位置。

    // replace方法解析
    var arr = '2,3,6'
    var str = arr.replace(/(\d+),(\d+),(\d+)/, '$3 = $2 + $2')
    console.log(str);
    </script>
</body>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值