• JavaScript正则表达式(一)-常用方法


    公司之前有个胖女孩说你竟然会正则? 其实正则没那么难;今天我们说说他常用的几个API。

    在讲方法之前, 我们先对正则表达式做一个基本的了解:

    1、正则表达式定义使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。

    2、英语:Regular Expression,在代码中常简写为regex、RegExp或RE。

    3、多用于文本搜索和文本替换,以及条件判断。

    test方法:返回Boolean

    { // -作用域-
    
    let str = "曹操草草的收拾了屋子,去操场约会去咯"
    let result = "结果他被放鸽子了"
    let reg = /[草|操]/g
    reg.test(str) // true
    reg.test(result) // flase
    
    } // -作用域-

     

    search方法:返回第一个找到的子项的index

    { // -作用域-
    
    let str = "曹操草草的收拾了屋子,去操场约会去咯"
    let result = "结果他被放鸽子了"
    let reg = /[草|操]/g
    str.search(reg) // 1(曹操的操字,index:1)
    result.search(reg) // -1(没有找到操或者草字,index:-1)
    
    } // -作用域-

     

    replace方法:替换匹配到的子项

    { // -作用域-
    
    let str = "曹操草草的收拾了屋子,去操场约会去咯"
    let result = "结果他被放鸽子了"
    let reg = /[草|操]/g
    str.replace(reg,'*') // "曹***的收拾了屋子,去*场约会去咯"
    result.replace(reg,'*') // "结果他被放鸽子了"
    
    } // -作用域-

     

    match方法:

    全局查找‘g’时:返回所有匹配的子项,返回值是Array

    { // -作用域-
    
    let str = "曹操草草的收拾了屋子,去操场约会去咯"
    let result = "结果他被放鸽子了"
    let reg = /[草|操]/g
    str.match(reg) // ["操", "草", "草", "操"]
    result.match(reg) // null
    
    } // -作用域-

     非全局查找时:返回一个集合:[匹配子项,index,input,groups]

    { // -作用域-
    
    let str = "曹操草草的收拾了屋子,去操场约会去咯"
    let result = "结果他被放鸽子了"
    let reg = /[草|操]/
    str.match(reg) // ["操", index: 1, input: "曹操草草的收拾了屋子,去操场约会去咯", groups: undefined]
    
    } // -作用域-

    exec方法:

    全局匹配时 reg.exec(str) 会依次匹配子项,直到匹配完成

    { // -作用域-
    
    let str = "曹操草草的收拾了屋子,去操场约会去咯"
    let result = "结果他被放鸽子了"
    let reg = /[草|操]/g // 全局匹配
    console.log(reg.exec(str)) // ["操", index: 1, input: "曹操草草的收拾了屋子,去操场约会去咯", groups: undefined]
    console.log(reg.exec(str)) // ["草", index: 2, input: "曹操草草的收拾了屋子,去操场约会去咯", groups: undefined]
    console.log(reg.exec(str)) // ["草", index: 3, input: "曹操草草的收拾了屋子,去操场约会去咯", groups: undefined]
    console.log(reg.exec(str)) // ["操", index: 12, input: "曹操草草的收拾了屋子,去操场约会去咯", groups: undefined]
    console.log(reg.exec(str)) // null
    
    } // -作用域-

    非全局匹配:

    { // -作用域-
    
    let str = "曹操草草的收拾了屋子,去操场约会去咯"
    let result = "结果他被放鸽子了"
    let reg = /[草|操]/ // 非全局匹配
    console.log(reg.exec(str)) // ["操", index: 1, input: "曹操草草的收拾了屋子,去操场约会去咯", groups: undefined]
    console.log(reg.exec(str)) // ["操", index: 1, input: "曹操草草的收拾了屋子,去操场约会去咯", groups: undefined]
    console.log(reg.exec(str)) // ["操", index: 1, input: "曹操草草的收拾了屋子,去操场约会去咯", groups: undefined]
    console.log(reg.exec(str)) // ["操", index: 1, input: "曹操草草的收拾了屋子,去操场约会去咯", groups: undefined]
    
    } // -作用域-

     关于test方法,这里提供一些常用的正则验证方法:

     下一期我们介绍正则的写法

    // 是否带有小数
    function    isDecimal(strValue )  {  
       var  objRegExp= /^d+.d+$/;
       return  objRegExp.test(strValue);  
    }  
    
    // 校验是否中文名称组成
    function ischina(str) {
        var reg=/^[u4E00-u9FA5]{2,4}$/; // 定义验证表达式
        return reg.test(str); // 进行验证
    }
    
    // 校验是否全由8位数字组成
    function isStudentNo(str) {
        var reg=/^[0-9]{8}$/;
        return reg.test(str);
    }
    
    // 校验电话码格式
    function isTelCode(str) {
        var reg= /^((0d{2,3}-d{7,8})|(1[3584]d{9}))$/;
        return reg.test(str);
    }
    
    // 校验邮件地址是否合法
    function IsEmail(str) {
        var reg=/^w+@[a-zA-Z0-9]{2,10}(?:.[a-z]{2,4}){1,3}$/;
        return reg.test(str);
    }

     

     

    生活不易,请继续努力,在未来的路上,愿你步伐坚定且内心温柔。——ziChin
  • 相关阅读:
    sfs2x 连接 mongodb
    java websocket
    webstorm 4.0 注册码
    解决 sfs2 admin tool 找不到扩展
    window 注册表五大类
    opengl 学习第二日
    java google Protobuf
    扩展 java sencha touch PhonegapPlugin
    sencha touch2 kryonet socket phonegap 通信 作者:围城
    sencha touch2 layout 笔记
  • 原文地址:https://www.cnblogs.com/ziChin/p/10100515.html
Copyright © 2020-2023  润新知