js学习笔记67——正则语法

之前创建正则表达式的方式有点麻烦,有简单的方式。

用字面量来创建正则表达式

语法:var 变量 = /正则表达式/匹配模式

    <script>
        var reg = /a/i;
        var reg2 =/a/g;
        var str = "a";
        var str2 = "A";
        console.log(reg.test(str));
        console.log(reg.test(str2));
        console.log(reg2.test(str));
        console.log(reg2.test(str2));
    </script>

在这里插入图片描述

用构造函数创建的比较灵活,可以传递变量
用字面量则简单。所以各有利弊。

检查一个字符串中是否有a或b

两种写法。

    <script>
        var reg = /a|b/;
        var str = "a";
        var str2 = "b";
        console.log(reg.test(str));
        console.log(reg.test(str2));
    </script>

在这里插入图片描述

    <script>
        var reg = /[ab]/;
        var str = "a";
        var str2 = "b";
        console.log(reg.test(str));
        console.log(reg.test(str2));
    </script>

在这里插入图片描述

检查是否有字母

    <script>
        var reg = /[a-z]/;
        var str = "a";
        var str2 = "g";
        var str3 = "G";
        console.log(reg.test(str));
        console.log(reg.test(str2));
        console.log(reg.test(str3));
    </script>

在这里插入图片描述
这里由于我没有写匹配模式,所以区分大小写。
如何做到不用匹配模式来实现不区分大小写?

    <script>
        var reg = /[A-z]/;
        var str = "a";
        var str2 = "g";
        var str3 = "G";
        console.log(reg.test(str));
        console.log(reg.test(str2));
        console.log(reg.test(str3));
    </script>

在这里插入图片描述
注意:这里实际上有毛病,因为这么写的作用是检查是否有A到z这段unicode编码的字符。差一些编码表发现,A到Z和a到z之间有一些其他的字符。所以如果字符串有这些其他的字符,也是会返回true的。
在这里插入图片描述
所以还是用匹配模式把。

检查是否有abc或adc或aec

        var reg = /abc|adc|aec/;
        var str = "abc";
        var str2 = "adc";
        var str3 = "aaa";
        console.log(reg.test(str));
        console.log(reg.test(str2));
        console.log(reg.test(str3));

在这里插入图片描述
不方便,如何改进?

var reg = /a[bde]c/;

在这里插入图片描述

检查是否有除了a的字母

    <script>
        var reg = /[^a]/;
        var str = "a";
        var str2 = "dc";
        var str3 = "e";
        console.log(reg.test(str));
        console.log(reg.test(str2));
        console.log(reg.test(str3));
    </script>

在这里插入图片描述

检查是否有除了数字的字符

    <script>
        var reg = /[^0-9]/;
        var str = "a";
        var str2 = "12";
        var str3 = "ea12";
        console.log(reg.test(str));
        console.log(reg.test(str2));
        console.log(reg.test(str3));
    </script>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小欣CZX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值