zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    linux 删除某种规则命名的文件
    adb shell 出现 error :
    android 开发,多个线程共用一个handler
    android 开发上传图片遇到返回 FileNotFoundException
    mysql 的存储过程调试软件
    输入adb shell 时 提示error: more than one device and emulator
    高德开发 android 出现 key 鉴权失败
    android 中设置HttpURLConnection 超时并判断是否超时
    LINQ to SQL语句(3)之Count/Sum/Min/Max/Avg
    C# 如何判断数据是否为 NaN
  • 原文地址:https://www.cnblogs.com/youmeng/p/3120145.html
Copyright © 2011-2022 走看看