JS中的正则方法

                                    正则方法

一、 exec

    正则表达式的方法,使用正则对象调用
    用于匹配字符串,只能匹配到第一个出现的字符串
        var str = "sdfdsfadaffcvsadddsfkhk:hm;abcrr";
        var reg = /abc/g;
        var reg1 = new RegExp("abc","g");
        console.log(reg.exec(str));
        console.log(reg1.exec(str));
    这个方法与字符串方法match相似,返回一个类数组,
    查找匹配的子串在父串中的位置,不能全局查找

二、 test

    正则对象的方法,必须使用正则对象调用
    用于判断一个字符串是否符合规定的正则规则
    符合规则返回true,不符合返回false
    匹配手机号的正则
        var reg = /^1[34578]{1}\d{9}$/;
            ^1:以一开头
            [34578]{1}:说明在34578中任意一个
            \d{9}$:以9位数字结束
        var result = reg.test(str);

三、正则语法

1. 特殊字符和普通字符
    正则表达式是由普通字符和特殊字符(元字符)组合而成的
    普通字符:字母(a-z A-Z) 数字(0-9) _ 等
    特殊字符(元字符):()  {}  [] ^  $  *  ?  \  |  +  .  等
    普通字符可以直接使用,特殊字符在需要的情况下需要转义
    转义字符:\
2. 系统预定义的特殊字符
    \t  /\t/  制表符
    \r /\r/   换行符
    \n /\n/   回车
    \f /\f/   换页、
    \b /\b/  回退符
3. 字符集  []
    4种字符集
        1) 简单集合
            []:包含几个字符,表示这几个字符的一个集合
            [as12]:表示由a,s,1,2组成的一个集合
        2) 范围集合
            []:包裹的一个范围:0-9 a-f A-S
                eg:[0-5] 表示0-5之间的数字组成的集合
        3) 负向集合
            在集合内部使用^表示非
                eg:[^as12] 表示除了as12的所有字符串
                    如果是as12返回false 只要不是as12就返回true
        4) 组合集合
            几个集合组合在一起
            eg:[0-9] [a-z] [A-Z] [_] ====> [0-9a-zA-Z_]
                                正则表达式

1. 正则的含义:用于匹配字符串的一种形式
               正则表达式是一种对象(数据类型)
2. 复习字符串
    转换:toString String  +""
    拼接:concat  +
    获取子串位置:indexOf lastIndexOf
    长度:length
    字符串某一个位置上得字符:charAt charCodeAt
    截取子串:substring substr slice
    替换:replace
    查找:search
    字符串转数组:split
    保留小数:toFoxed(2)
    编码:encodeURIComponent
    解码:decodeURIComponent
3. 要学习的方法
    4个字符串方法:
            search    match    split    replace
            search:检索与正则表达式相匹配的值(没有返回-1)
            用法:str.search(reg);
            match:返回所有正则表达式的匹配(数组)
            用法:str.match(reg);
            replace:替换与正则表达式匹配的子串
            用法:str.replace(reg,"");
    2个正则方法:
            exec    test
            test:检索字符串中指定的值  返回 true 或 false
            用法:reg.test(str);
            exec:检索字符串中指定的值  返回检索的值
            用法: reg.exec(str)
4. 创建正则表达式
    eg:数组创建
        var arr = [1,2,3];
        var arr = new Array();
    正则表达式也有两种创建方式;
        1) 字面量
            var reg = /\s+/;
        2) 使用构造函数new一个
            var reg = new RegExp();
5. split 分割字符串
    将字符串转为数组,通过特殊字符将字符串切开
    如果使用正则切开字符串,则传递的参数是一个正则对象
    var a = "a  b c    d";
    传统方法:a.split(""); 详见案例
    正则方法:a.split("/\s+/");
6. search 查找
    在父串中查找字符串或者字符的位置,
    传统方法传入一个子串,正则方法传入一个正则表达式
    var str = "abcdefqwerqwerrre.rrwqqwrr";
    传统查找 er
        console.log(str.search("er"));
    传统查找 .
        console.log(str.search("\\."));
    正则查找 er 和 .
        console.log(str.search(/er/));
        console.log(str.search(/\.+/));
    注意:search不能全局查找
7. match  返回所有正则表达式的匹配(数组)
    在父串中匹配子串,参数是字符串货正则
    var str = "adDdvcdfwedDDfafsdfddddDfsafd";
    传统查找
        console.log(str.match("ddd"));
    正则查找
        console.log(str.match(/d+/gi));  /d+/g 不区分 "d" 的大小写
    注意:match返回的是一个类数组
          类数组:数组和对象的结合体同时拥有数组及对象的方法和属性
    注意:在正则表达式中千万不能乱加特殊字符  比如 空格等,这是一种规则
8. replace
    替换父串中被匹配到的子串
    两个参数:
        参数1:oldStr 将要被换掉的子串,也可以是正则
        参数2:newStr 替换字符串,可以是字符串也可以是函数,
               如果是函数就必须有返回值,返回值必须是字符串
        var str = "你是傻子,他也是傻子";
        g:全局查找
        var str = "你是傻子,他也是傻子";
        传统替换
            console.log(str.replace("傻子","*"));
        正则替换
            console.log(str.replace(/傻子/g,"*"));
        传统替换只能替换找到的第一个
        正则则可以全局替换
9. 字符串方法总结:
    返回数字的方法:search indexOf lastIndexOf length charCodeAt
    返回数组的方法:split match
    返回字符串:replace charAt concat substr substring slice
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值