js从菜鸟到精通day09-正则表达式

本文介绍了JavaScript中的正则表达式,包括创建方法、测试用法(test()和exec())、边界符、中括号选择器、量词、元字符类的应用,以及如何使用match()和replace()进行字符串操作,如提取邮箱地址和替换字符。
摘要由CSDN通过智能技术生成

正则表达式

1.创建正则

<script>

        // RegExp js的内置对象
        // js内置对象:Number  String  Boolean  Math  Date  Array  RegExp


        // 创建一个正则表达式(自定义一个匹配规则)
        // 1.字面量创建
        // var reg = /a/;
        // 2.使用new 调用RegExp 构造函数
        var reg = new RegExp(/book/);
        console.log(reg);
        console.dir(reg)
    </script>

2. 测试正则表达式

test() 正则对象方法,用于检测字符串是否符合该规则,该对象会返回 true 或 false,其参数是测试字符串。

<script>
        // 创建一个匹配规则
        // var reg = /nice/;

        var reg = /nice/i;
        var str = "today is Nice day";

        var reg2 = /a/g;
        var str2 = "aaaaaaaaaaa";

        // 验证 字符串
        // test 返回值是一个布尔值
        console.log(reg.test(str));
        console.log(reg2.test(str2));

        // i  忽略大小写
        // g  全局匹配
        // gi 全局匹配+忽略大小写

        // exec() 方法用于检索字符串中的正则表达式的匹配。如果字符串中有匹配的值返回该匹配值,否则返回 null。
        // 如果匹配成功,exec() 方法返回一个数组,并更新正则表达式对象的 lastIndex 属性
        console.log(reg2.exec(str2))
        console.log(reg2.exec(str2))
        console.log(reg2.exec(str2))
        console.log(reg2.exec(str2))
    </script>

3.边界符

正则表达式中的边界符(位置符)用来提示字符所处的位置,主要有两个字符--精确匹配

 <script>
        // ^ 以谁开始
        // $ 以谁结束

        // var reg = /^abc/
        // var reg = /abc$/
        var reg = /^abc$/;

        var str = "abcdefghijklmnopqrstuvwxyz";
        var str2 = "defghijklmnopqrstuvwxyzabc";
        var str3 = "abcdefghijklmnopqrstuvwxyzabc";
        var str4 = 'abc'
        // console.log(reg.test(str));
        // console.log(reg.test(str2));
        // console.log(reg.test(str2));
        console.log(reg.test(str3));
        console.log(reg.test(str4));
    </script>

4. [ ] 中括号

有一系列字符用中括号括起来,表示匹配其中的任一字符,多选一

 

5.量词符

量词符用来设定某个模式出现的次数。

 6.括号总结

7. 元字符类

预定义类指的是某些常见模式的简写方式.

 案例:

//用户名:
/^\w{5,20}$/
验证手机号:
/^1[3|4|5|7|8]\d{9}$/
验证邮箱 xxx@qq.com: 
/\w+@\w+\.\w+(\.\w+)?/
验证密码:
/^[a-zA-Z0-9_-]{6,16}$/

8. 正则提取

String对象的match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。返回值是存放匹配结果的数组。该数组的内容依赖于RegExp 是否具有全局标志 g。

//1. 提取email地址
var str = "123123@qq.com,ziyuanyihe@163.cn 87666444@qq.com englishtown.com 222669312@qq.com...";
var array = str.match(/\w+@\w+\.\w+(\.\w+)?/g);
console.log(array);

9. 正则替换和查询

var str = "abc,efg,123,abc,123,a";

console.log(str.search(/a/));
console.log(str.replace(/,|,/g, '.'));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值