JS基础--正则表达式

正则表达式:用于定义一些字符串的规则

一、创建正则表达式的两种方式:

// 1.var 变量 = new RegExp("正则表达式","匹配模式")
            var str = "Hello RegExp";
            var reg = new RegExp("hello","i");//检查一个字符串是否含有a
            console.log(reg.test(str));//true
// 2.var 变量 = /正则表达式/匹配模式
            var reg1 = /Hello/i;
            console.log(reg1.test(str));//true
        // test():用来检查一个字符串是否符合正则表达式的规则
        // 匹配模式有两种: i 忽略大小写
                        // g 全局匹配模式
        // ps:使用字面量的方式创建更加简单,使用构造函数创建更加灵活;

二、正则表达式语法

|或者
[n]或者
[^ n]除了
// 使用|表示或者
        var reg = /a|b/i;
        console.log(reg.test("abbb"));//true
// 使用[]也可表或者
        reg = /[ab]/;
        console.log(reg.test("bc"));//true
        console.log(reg.test("ac"));//true
// [A-Z]任意大写字母 [a-z]任意小写字母 [A-z]任意字母 [0-9]任意数字
        reg = /[a-z]/;
        console.log(reg.test("abb"));//true
// [^ ]表除了[]里的都返回true
        reg = /[^0-9]/;
        console.log(reg.test(398423));//false
        console.log(reg.test("sd12"));//true

三、字符串和正则相关的方法

1.split():将一个字符串拆分为一个数组(默认全局匹配)

 var str = "DxHaJvSvfHwFshsUdfr";
        var result = str.split(/[a-z]/);
        console.log(result);//['D', 'H', 'J', 'S', '', 'H', 'F', '', '', 'U', '', '', '']
        console.log(str);//DxHaJvSvfHwFshsUdfr
        // 该方法不改变原字符串;结果以数组对象类型返回

2.search():搜索字符串中是否含有指定内容(只会查找第一个,无全局匹配)

 var str = "Someone or something that is amusing makes you laugh or smile";
        var result = str.search(/m[a-z]s/);
        console.log(result);//30
        // 返回查询到的第一个单词索引

3.match():根据正则表达式,从一个字符串中将符合条件的内容提取出来(会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果)

 var str = "Someone or something";
        var result = str.match(/[m-z]/g);
        console.log(result);//['o', 'm', 'o', 'n', 'o', 'r', 's', 'o', 'm', 't', 'n']
        // 默认情况下,match只会找到第一个符合要求的内容,找到以后停止检索
        // 设置全局匹配模式,将会匹配到所有内容

4.replace("被替换内容","新的内容"):可以将字符串中指定内容替换为新的内容

 var str = "amusing makes you laugh or smile";
        var result = str.replace(/[m-z]/g,'');
        console.log(result);//aig ake  lagh  ile
        

四、量词:通过量词可以设置一个内容出现的次数;量词只对它前边的一个内容起作用

{n}正好出现n次
{m,n}出现m-n次
{m,}m次以上
+至少一个,+ == {1,}
*0个或多个,* == {0,}
?0个或一个,? == {0,1}

        ^表开头,$表结尾,.表任意字符,\.表.,\\表\

\w

\W

任意字母、数字、_ ([A-z0-9_])

除了字母、数字、_ ([^A-z0-9_])

\d

\D

任意数字([0-9])

除了数字([^0-9])

\s

\S

空格

除了空格

\b

\B

单词边界

除了单词边界

单词边界:

// 单词边界
        var str = "Someone or something";//or两边空格处为单词边界
        var reg = /\bor\b/;
        var str2 = "Someone orsomething";
        console.log(reg.test(str));//true
        console.log(reg.test(str2));//false

例子:

 // 正则例子:邮件
            // 邮件: hello.reg@234.com.cn
                    //  hello.reg :任意字母数字下划线 (\w{4,}(\.\w+)*)
                    //  @
                    //  234:任意字母数字 ([A-z0-9]+)
                    //  .com.cn 任意字母 ((\.[A-z]{2,5}){1,2})
        var emailReg = /^\w{4,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/;
        var email = "hello.reg@234.com.cn";
        console.log(emailReg.test(email));//true

学习地址:【尚硅谷】JavaScript基础&实战丨JS入门到精通全套完整版_哔哩哔哩_bilibili

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值