【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这个标志,那么“^”还可以与被搜索字符串中的“\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)的更多相关文章
- JS正则表达式常用总结
正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...
- 使用外部web组件-----easyUI、jQueryUI、Bootstrap、js正则表达式
1.使用外部web组件,以Bootstrap为例 <head> <link rel='stylesheet' href='bootstrap-3.3.0-dist/dist/css ...
- js正则表达式图形化工具-rline
github地址:https://github.com/finance-sh/rline 在线demo: http://lihuazhai.com/demo/test.html 这是一个js正则表达式 ...
- Python之路-(js正则表达式、前端页面的模板套用、Django基础)
js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../ 用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...
- JS正则表达式大全
转自:http://wenku.baidu.com/link?url=3y930kC7F6D3wQdMjQ3fVDmiA9Wfebs_QK0UB3N3mFaEoKg4ytZORPopxufeYA6si ...
- js正则表达式replace里有变量的解决方法用到RegExp类
一直比较害怕使用正则表达式,貌似很深奥很复杂的样子,所以在用js操作字符串的时候,我最多使用的是replace.split.substring.indexOf等函数,这些函数有时候需要多次叠加使用,但 ...
- JS正则表达式验证账号、手机号、电话和邮箱
JS正则表达式验证账号.手机号.电话和邮箱 效果体验:http://keleyi.com/keleyi/phtml/jstexiao/15.htm 验证帐号是否合法 验证规则:字母.数字.下划线组成, ...
- 初识JS正则表达式
初识JS正则表达式 看到的使用的正则表达式练习:http://www.cnblogs.com/wenanry/archive/2010/09/06/1819552.html PS:本文参考李炎恢JS笔 ...
- 常用JS正则表达式
常用JS正则表达式 收集一些常用的JavaScript正则表达式匹配规则,比如匹配电话号码.Email.中文字符.身份证号.邮编.QQ号.过滤空白行.匹配特定数字等.觉得这玩意是很有用的,只不过自己水 ...
- JS正则表达式大全(整理详细且实用)
JS正则表达式大全(整理详细且实用).需要的朋友可以过来参考下,希望对大家有所帮助!! 正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释, ...
随机推荐
- linux编程合并多个静态库.a为一个.a
.a 文件的结构和.tar文件就没有什么区别. x 命令解出来, a 命令添加, t命令列表 假设A.a, B.a C.a 在/usr/local/lib目录下 mkdir /tmp/libABC c ...
- 原生js获取宽高与jquery获取宽高的方法的关系
说明:1.因为获取高度的情况跟获取宽度的情况一样,所以以下只说获取宽度的情况. 2.以下所说的所有方法与属性所返回的值都是不带单位的. 3.为了方便说明,以下情况采用缩写表示: obj -> ...
- 请教如何改善C#中socket通信机客户端程序的健壮性
我是做Socket的新手,最近做了一个Socket客户端程序,连接Server的时候,如果server存在,并且允许连接的话,程序无错,正常执行:但是如果Server不存在,或者拒绝连接,程序就会卡住 ...
- win10 右键发送到 目录
win10 右键发送到 目录 C:\Users\llskj\AppData\Roaming\Microsoft\Windows\SendTo C:\Users\llskj\AppData\Roamin ...
- (LeetCode 83)Remove Duplicates from Sorted Lists
Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ...
- HTML5游戏,五子棋
在线演示 本地下载 最近html5的游戏还真是不少,这种在线游戏既简单又有趣.收藏几个在午休时间娱乐一下.何乐而不为呢?喜欢研究的可以下载代码看看.超级推荐!
- Discuz常见大问题-如何使用云采集插件
在百度中搜discuz 云采集插件(直接在Discuz官方的插件库中搜可能搜不到) 启用这个插件 随后在任意版块发帖的时候,顶部都会有一个文本框,可以直接放别人博客的帖子,点击获取将生成到你发的帖子中 ...
- 【转载】如何在Oracle中复制表结构和表数据
1. 复制表结构及其数据: create table table_name_new as select * from table_name_old 2. 只复制表结构: create table ta ...
- Android之新建项目
最近开始接触Android,实践出真理,接下来实际创建Android应用程序. 1.启动Eclipse,依次选择 " File/New/Project... " 或 " ...
- Struts2(三)更改字符编码
一.导入包和struts配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE stru ...