• JavaScript正则表达式


    由于本人大部分处理后台代码,很少用到Javascript。最近的项目做前端,用到Js和正则,特发此文,总结一下。

    参考W3cSchool和其他的网上信息。

    如有问题,欢迎指正.

    使用JS和正则的较多的情况:表单验证、正则替换字符串等等……

    正则的初始化

    var reg=new RegExp(pattern, attributes);
    
    //第一个参数pattern:就是传入正则表达式的
    //第二个参数 attributes:包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。最常用的为"g"

    RegExp对象包括三个方法

    1、text():方法检索字符串中的指定值。返回值为bool类型,即true 或 false

        <script type="text/javascript">
            var pattern = "_n$";//正则表达式
            var reg = new RegExp(pattern, "g");
            alert(reg.test("abc_n"));
        </script>

    2、exec():方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。

        <script type="text/javascript">
            var pattern = "abc_n$";//正则表达式
            var reg = new RegExp(pattern, "g");
            alert(reg.exec("abc"));
            //弹出框为null
    
    
            var reg1 = new RegExp(pattern, "g");
            alert(reg1.exec("abc_n"));
    
            //弹出框为abc_n
        </script>

    3、compile():暂时没有用到,以后用到的话再继续补充

    支持正则表达式的 String 对象的方法

    有四个方法

    1、search():检索与正则表达式相匹配的值。

    2、math():找到一个或多个正则表达式的匹配。

    3、replace():替换与正则表达式匹配的子串。

    4、split():把字符串分割为字符串数组。

    项目中用到了replace,今天就着重讲一下replace

        <script type="text/javascript">
    
            //将字符串最后的_n替换掉
            var pattern = "_n$"; //正则表达式
            var inputstr = "enabled"; //要替换的字符串
    
            var reg = new RegExp(pattern, "g");
    
            alert(inputstr.replace(reg, ""));//第一个参数为正则表达式,第二个参数为要替换的新字符
    
    
        </script>

    以下是一些常用的正则表达式,可能有个别的存在bug,是自己累积和写的:

    Decimal:^\d{0,16}\.?\d{0,2}$
    
    手机号:^1[3,5,8]\d{9}$
    
    文件:\w+(\.txt|\.doc|\.docx|\.xls|\.xlsx)
    
     图片:^\w+(\.gif|\.jpg|\.png|\.jpeg)$
    
    数字和字母:^([0-9]|[0-9a-zA-Z]|[a-zA-Z]){6,16}$
    
    去除非法字符(反义):^[^/\\<>*?@]{6,}$
    
    /// <summary>
    /// 常用正则
    /// </summary>
    public abstract class Patterns
    {
    /// <summary>
    /// 单个字母
    /// </summary>
    public const string SINGLE_LETTER = @"^\w$";
    
    /// <summary>
    /// 正确文件名是否有非法字符
    /// </summary>
    public const string FILENAME = @"[/\\<>*?]";
    
    /// <summary>
    /// 图片格式扩展名
    /// </summary>
    public const string IMAGE_EXTS = @"\.gif|\.jpg|\.jpeg|\.png|\.bmp";
    
    /// <summary>
    /// 单个电子邮箱地址
    /// </summary>
    public const string EMAIL = @"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$";
    
    /// <summary>
    /// 密码,非空格,tab符以外的任意字符
    /// </summary>
    public const string Password = "^[^\\s]{6,16}$";
    
    /// <summary>
    /// 一批 E-Mail 地址(单角分号分隔)
    /// </summary>
    public const string BATCH_EMAIL = @"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*(;\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)*$";
    
    /// <summary>
    /// ID串,形如1(,2,3,4)*
    /// </summary>
    public const string IDS = @"^\d+(,\d+)*$";
    /// <summary>
    /// 字母+数字的组合
    /// </summary>
    public const string WORD_NUMERAL_COMBO = @"(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{2,})$";
    /// <summary>
    /// 纯数字
    /// </summary>
    public const string NUMERAL = @"^\d+$";
    }

    这篇文章比较全面:http://www.blogjava.net/pingpang/archive/2012/08/12/385342.html

  • 相关阅读:
    temp
    JAVA&nbsp;存储空间 寄存器 堆栈 堆…
    数据类型、变量、数组类
    ubuntu ARP 防御
    详解 JAVA 创建对象 NEW
    Eclipse常见问题集锦
    解决error:2014 Commands out of sync; you can't run this command now
    关于MySql5“data too long for column”问题的探解
    Notepad++编辑Pyhton文件的自动缩进的问题(图文)
    mysql 'latin1' codec can't encode characters的问题
  • 原文地址:https://www.cnblogs.com/youmeng/p/3120145.html
Copyright © 2020-2023  润新知