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这个标志,那么“^”还可以与被搜索字符串中的“\n”或“\r”之后的位置(即下一行的行首)相匹配,而“$” 还可以与被搜索字符串中的“\n”或“\r”之前的位置(即一行的行尾)相匹配。

下面是在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());   

【js】正则表达式(II)的更多相关文章

  1. JS正则表达式常用总结

    正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...

  2. 使用外部web组件-----easyUI、jQueryUI、Bootstrap、js正则表达式

    1.使用外部web组件,以Bootstrap为例 <head> <link rel='stylesheet'  href='bootstrap-3.3.0-dist/dist/css ...

  3. js正则表达式图形化工具-rline

    github地址:https://github.com/finance-sh/rline 在线demo: http://lihuazhai.com/demo/test.html 这是一个js正则表达式 ...

  4. Python之路-(js正则表达式、前端页面的模板套用、Django基础)

    js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../  用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...

  5. JS正则表达式大全

    转自:http://wenku.baidu.com/link?url=3y930kC7F6D3wQdMjQ3fVDmiA9Wfebs_QK0UB3N3mFaEoKg4ytZORPopxufeYA6si ...

  6. js正则表达式replace里有变量的解决方法用到RegExp类

    一直比较害怕使用正则表达式,貌似很深奥很复杂的样子,所以在用js操作字符串的时候,我最多使用的是replace.split.substring.indexOf等函数,这些函数有时候需要多次叠加使用,但 ...

  7. JS正则表达式验证账号、手机号、电话和邮箱

    JS正则表达式验证账号.手机号.电话和邮箱 效果体验:http://keleyi.com/keleyi/phtml/jstexiao/15.htm 验证帐号是否合法 验证规则:字母.数字.下划线组成, ...

  8. 初识JS正则表达式

    初识JS正则表达式 看到的使用的正则表达式练习:http://www.cnblogs.com/wenanry/archive/2010/09/06/1819552.html PS:本文参考李炎恢JS笔 ...

  9. 常用JS正则表达式

    常用JS正则表达式 收集一些常用的JavaScript正则表达式匹配规则,比如匹配电话号码.Email.中文字符.身份证号.邮编.QQ号.过滤空白行.匹配特定数字等.觉得这玩意是很有用的,只不过自己水 ...

  10. JS正则表达式大全(整理详细且实用)

    JS正则表达式大全(整理详细且实用).需要的朋友可以过来参考下,希望对大家有所帮助!! 正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释, ...

随机推荐

  1. iOS: 音效和音乐的播放,封装的工具类

    在iOS中音频播放从形式上可以分为音效播放和音乐播放.前者主要指的是一些短音频播放,通常作为点缀音频,对于这类音频不需要进行进度.循环等控制.后者指的是一些较长的音频,通常是主音频,对于这些音频的播放 ...

  2. Objective-C:浅复制(拷贝)

    浅复制:复制对象时,如果对象中包含对象类型的实例变量,只是复制指针.新对象中的对象类型实例变量和旧对象中的对象类型实例变量指的是同一个对象.任何一方实例变量对对象做修改,另一方实例变量指向的该对象也就 ...

  3. Android -- 自定义标题栏,背景颜色填充满

    设置标题栏背景 1> 准备背景图片: background_pix.png 注:用背景图片比用颜色好处,可以让背景看起来有凹凸感. 2> drawable文件夹下放xml文件 bitmap ...

  4. Pylons架构网站开发从0到1

    首先说明下这里的从0到1指的是从没有听说过pylons到开发出一个看上去还不错的网站.一个月前,我没有听说过也不知道什么是pylons,HTML只知道一些标签,JavaScript也不怎么懂,由于只倾 ...

  5. [置顶] Java中字符串为什么不以\0结尾

    其实这个问题没有什么好说的,Java里面一切都是对象,是对象的话,字符串肯定就有长度,即然有长度,编译器就可以确定要输出的字符个数,当然也就没有必要去浪费那1字节的空间用以标明字符串的结束了. 学过C ...

  6. (转)NGUI系列教程七(序列帧动画UITexture 和 UIsprit)

    NGUI系列教程七(序列帧动画)   今天我给大家讲一下如何使用NGUI做序列帧动画.本节主要包括两方面内容,分别是使用UIspirit和使用UITexture 做序列帧动画.废话不说了,下面开始.还 ...

  7. Discuz常见小问题-如何使用QQ登陆

    在首页中找到超链接 往下翻找到QQ互联,注意如果是内网无法开通(需要网站上传之后)

  8. UE如何使用正则表达式

    1 基本概念 元字符: 元字符 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符() \d 匹配数字 \b 匹配单词的开始或结束 \W 匹配任意不是字母 ...

  9. CLR 之 内容概述

    第 I 部分 CLR 基础 第 1 章 CLR的执行模型 第 2 章 生成.打包.部署和管理应用程序及类型 第 3 章 共享程序集和强命名程序集 第 II 部分 设计类型 第 4 章 类型基础 第 5 ...

  10. 导入maven项目出现 Unsupported IClasspathEntry kind=4

    Unsupported IClasspathEntry kind=4 这个异常会导致项目无法使用spring ide启动 来自:http://blog.csdn.net/kongqz/article/ ...