zoukankan      html  css  js  c++  java
  • 【js】正则表达式(II)

        JavaScript中提供了一个名为RegExp的对象来完成有关正则表达式的操作和功能,每一条正则表达式模式对应一个RegExp对象实例。

        在JavaScript中,有两种方式可以创建RegExp对象的实例:

           (1)使用RegExp对象的显示构造函数,语法为:new RegExp("pattern"[,"flags"])

           (2)使用RegExp对象的隐式构造函数,采用纯粹的文本格式:/pattern/[flags] 

        pattern部分为要使用的正则表达式模式文本,是必须的。在第一种方式中,pattern部分以JavaScript字符串的形式存在,需要使用双引号或单引号引起来;在第二种方式中,pattern部分嵌套在两个“/”字符之间,不能使用引号引起来。flags部分设置正则表达式模式的标志信息,是可选的,可以是以下标志字符的组合:

        g 用作全局(global)标志。如果设置了g这个标志,使用这个正则表达式模式对某个文本执行搜索和替换操作时,将对文本中所有匹配的部分起作用。

        i 用作忽略大小写(case-insensitive)标志。如果设置了i这个标志,进行匹配比较时,将忽略大小写。

        m 用作多行(multiline)标志。如果没有设置m这个标志,那么元字符“^”只与整个被搜索字符串的开始位置相匹配,而元字符“$”只与整个被搜索字符串的结束位置相匹配。如果设置了m这个标志,那么“^”还可以与被搜索字符串中的“ ”或“ ”之后的位置(即下一行的行首)相匹配,而“$” 还可以与被搜索字符串中的“ ”或“ ”之前的位置(即一行的行尾)相匹配。

        下面是在javascript程序中应用正则表达式的一些典型案例:

    1.将一个字符串中的所有的两位数字的十位和个位交换:

    <script language="javascript">
    
      var strSrc = "a12b34c56";
    
      var re = /(d)(d)/gi;
    
      var strDest = strSrc.replace(re,"$2$1");
    
      alert(strSrc + " has been converted into " + strDest);
    
    </script>

    2.使用正则表达式验证身份证和提取年月日:

    说明:身份证要么是15位,要么是18位,前面的每位都为数字,最后一位可以为字母,从7位到第14位为出生年月。

    <script language="javascript">
    
       function verify(idcard){
    
          var datePattern = new RegExp(
    
    "^\d{6}(19\d{2}|20\d{2})(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])(\d{3})?[\da-zA-Z]$");
    
          if(datePattern.test(idcard)){
    
             alert(idcard + "为有效身份证,出生年月为"
    
             + RegExp.$1 + "-" + RegExp.$2 + "-" + RegExp.$3);
    
       }else{
    
          alert(idcard + "为无效身份证");
    
       }
    
    }
    
    </script>

    请输入身份证:<input type="text" value="422413191803060318" onblur="verify(this.value)"/>

    3.使用正则表达式去掉字符串两端的所有空格:

    说明:javascript中的字符串没有去掉两端空格的功能,可以用prototype属性为String类扩展一个trim方法,以后的String类都可以使用这个trim方法来去掉两端的空格了。

    String.prototype.trim = function(){
    
    return this.replace(/^s+|s+$/g,"");
    
    }; 
    
    alert("  aaa  ".trim());   
  • 相关阅读:
    Android studio怎么创建shape的XML文件
    请问如何在PS中将一张图标里的各个小图标分离成一个个图标?
    IOS 开发之 -- 过滤掉字符串里面所有的非法字符 字典和json之间的互转
    ios开发之 -- 5分钟集成融云的客服功能
    ios开发之 --调用系统的页面,显示中文
    IOS 开发之-- textfield和textview,return键的改变,点击return键
    IOS 开发之--获取真机的deviceToeken
    iOS 开发之--使用AFNetWorking3.1.0上传单张/多张图片
    iOS 开发之--打测试包的时候报错的解决方法
    ios开发之 -- 调用系统定位获取当前经纬度与地理信息
  • 原文地址:https://www.cnblogs.com/ningvsban/p/3427766.html
Copyright © 2011-2022 走看看