一直以来知到正则表达式很强大,想狠下心来学一学,前段时间为此买了本《精通正则表达式》,花了不少大洋。买回来看了不到200页,太浮躁了,看不进去啊,书是好书,就这样一直放着。
看JQuery源码也不少时间了,可对那几个正则表达式不是很理解,就今天,太好了,找了一篇文章,终于有种醍醐灌顶的感觉。好东西不敢独享,呵呵,下面是把那文章稍作整理,稍后再分析JQuery里面的正则表达式,以作复习。
原文地址:http://www.cainiao8.com/web/js_note/js_regular_expression.html
1.
c{n} // /c{1}/只能匹配一个c。
c{n,m} // c{3,4}的意思是,连续的3个c或者4个c
c{n,} // c{1,}表示1个以上的c
2.
*,+,?
*表示0次或者多次,等同于{0,},即
c* 和 c{0,} 是一个意思。
+表示一次或者多次,等同于{1,},即
c+ 和 c{1,} 是一个意思。
最后,?表示0次或者1次,等同于{0,1},即
c? 和 c{0,1} 是一个意思。
3.贪心与非贪心
{n,}?, *?, +?, ??, {m,n}?
{n,}? 非贪心模式
4.^表示只匹配字符串的开头,$则只匹配字符串结尾的字符
5.‘.’会匹配字符串中除了换行符\n之外的所有字符
6. b|c表示,匹配b或者c
7. () 表达式内括号里写的内容会被认为是子正则表达式,所匹配的结果也会被记录下来供后面使用
8. [abc]表示a或者b或者c中的任意一个字符
9. 反字符集合[^abc]
10. \b表示的边界的意思,也就是说,只有字符串的开头和结尾才算数,与\b对应\B表示非边界
11. \d表示数字的意思,相反,\D表示非数字。
12. 空白
\f匹配换页符,\n匹配换行符,\r匹配回车,\t匹配制表符,\v匹配垂直制表符。
\s匹配单个空格,等同于[\f\n\r\t\v]。
13. \w表示单词字符,等同于字符集合[a-zA-Z0-9_]。
14. 反向引用 : 形式如下:/(子正则表达式)\1/
15. 不记录子正则表达式的匹配结果 : 使用形如(?:pattern)的正则就可以避免保存括号内的匹配结果
16. 所谓正向预查,意思就是:要匹配的字符串,后面必须紧跟着pattern 。 形式:(?=pattern)
17. 形式(?!pattern)和?=恰好相反,要求字符串的后面不能紧跟着某个pattern
18. 我们之前用过*,+,?之类的符号,它们在正则表达式中都有一定的特殊含义,类似这些有特殊功能的字符都叫做元字符;要匹配其他元字符,只要在前面加上一个“\”就可以了。
19. 正则表达式修饰 : 形式:/pattern/g
g 全局
m m修饰符的作用是修改^和$在正则表达式中的作用,让它们分别表示行首和行尾
i 不区分大小写
20.exect()方法:
exec方法返回的其实并不是匹配结果字符串,而是一个对象
21. test() 方法:
test方法仅仅检查是否能够匹配str,并且返回布尔值以表示是否成功
22. macth() 方法:
形式:str.match(reg);
与正则表达式的exec方法类似,该方法同样返回一个类似数组的对象,也有input和index属性。
设置了g修饰符的正则表达式在完成一次成功匹配后不会停止,而是继续找到所有可以匹配到的字符。返回的结果包括了三个b。不过没有提供input和index这些信息
23. replace()方法
形式:str. replace (reg,’new str’);
它的作用是将str字符串中匹配reg的部分用’’new str”部分代码,值得注意的是原字符串并不会被修改,而是作为返回值被返回
就像在正则里我们可以使用\1来引用第一个子正则表达式所匹配的内容一样,我们在replace函数的替换字符里也可以使用$1来引用相同的内容
24. search方法和split方法
形式如下:str.search(reg);
search返回正则表达式第一次匹配的位置
分享到:
相关推荐
网上看到的一篇介绍Javascript正则表达式的文章,感觉非常不错,整理了一下导出成PDF,有兴趣的看一下。文章属于转载,文档中注明了出处。
javascript经典正则表达式 (收藏整理)-javescript教程
该手册是我从网上搜集整理的一些有关正则表达式的材料,其详细介绍了正则表达式的功能和作用,表现形式,各种有关元字符的使用,以及各种实例代码,对新手是很好的学习材料,对老手也可以作为很有价值的参考.
javascript正则表达式容易被忽略的小问题整理.docx
考虑到这个正则表达式仅仅是用作验证,所以捕获组没有意义,只会占用资源,影响匹配效率,所以可以使用非捕获组来进行优化。 ^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2...
正则表达式是写javascript的判断的最好的方法,特别是数字,日期判断,这里我已经把所有的正则表达是全都整理出来了,如有需要的就来下载吧
个人整理的一份javascript正则表达式,有需要的朋友可以下载
JavaScript正则表达式 减小字体 增大字体 作者:佚名 来源:本站整理 发布时间:2005-7-1 4:13:10 正则表达式是一个描述字符模式的对象。 JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式...
本文是小编给大家收藏整理的13道关于JavaScript正则表达式的面试题,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
说明:IE6.0、IE7.0、IE8.0、Firefox/3.0.11下测试通过 验证数字最简单正则表达式大全 输入完按回车后即可验证!... 您可能感兴趣的文章:JS正则表达式大全(整理详细且实用)javascript 手机号码正则表
关于正则表达式中各种特殊字符(如 \,^,$,\w,\b 等)的含义可以参考 MDN 正则表达式-特殊字符 的整理。这里我们简单介绍一下向前查找和反向引用。 向前查找:正则表达式向前使用一些字符而不移动这些字符的位置,...
本文是小编参考其他有关js正则表达式资料整理的,主要目的有两个:一:自我复习归纳总结。二:共享方便大家搜索。js正则表达式感兴趣的朋友可以一起学习
本文是小编收集整理的15个常用的javascript正则表达式,非常不错,具有参考借鉴价值,需要的朋友参考下吧
1、创建正则表达式 第一种方式:注意这里的正则表达式不能使用单引号或者双引号,如下 var pattern1 = /[abc]/i; // 匹配第一个”a”或”b”或”c”,不区分大小写 第二种方式:使用RegExp构造函数创建,该构造函数...
为大家分享了一篇超全的javascript正则表达式整理笔记,感兴趣的小伙伴们可以参考一下
正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在”\”后面的字符不按原来意义解释,如/b/匹配字符”b”,当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能字符的还原,如”*”...
匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII...
匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内): [^\x00-\xff] 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) String.prototype.len=function(){ return this....
正则表达式可以: •测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证 •替换文本。可以在文档中使用一个正则表达式来...