zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    MATLAB 中sparse函数使用及full函数用法简单介绍(转)
    稀疏矩阵加减,乘除, 逆 (转)
    拟合方法求直线方程系数
    matlab filtfilt 函数
    Typora 精美而强大的Markdown编辑器 转
    MATLAB生成exe脱离matlab运行可执行程序
    matlab 生成.exe文件 转
    C#排序 转
    C# 进制转换(二进制、十六进制、十进制互转) 转载 https://www.cnblogs.com/icebutterfly/p/8884023.html
    一维高斯滤波 转
  • 原文地址:https://www.cnblogs.com/ziChin/p/10100515.html
Copyright © 2011-2022 走看看