浅入javascript正则表达式的规则.
今天在看jQuery源码的时候,到处都是正则的用法,一气之下就狠下心来.重新回顾了一下正则.下面是做的笔记.非常浅的入门.

1 /*
2 i:表示不区分大小写
3 g:表示可以全局配置
4 m:表示可以多行配置
5 */
6 /*
7 ^:表示从字符串的第一个位置开始匹配
8 */
9 var result = false;
10 var str = "guoGuo";
11 var reg = /^gu/; //匹配字符串是否已gu开头
12 result = reg.test(str);//true
13
14 /*
15 $:匹配字符串的尾端
16 */
17 str = "guoyansi";
18 reg = /i$/;//是否已i结尾
19 result = reg.test(str); //true
20 /*
21 *:匹配前一个字符0次或多次
22 /a星号/:以a开头开始匹配,如果匹配到a,则返回a,否则返回null
23 /ab星号/:以a开头开始匹配,如果匹配到了a,返回a,匹配到了abbb...返回abbb....
24 0次:没有b的就匹配a
25 多次:有a,后面不论多少个b,都匹配出来abbb....
26 */
27 str = "dadbudabbbbc";
28 reg = /du*/g;
29 result = str.match(reg);
30
31 /*
32 +:匹配前一个字符一次或多次
33 /a+/:以a开头开始匹配,如果匹配到a,则返回a,否则返回null
34 /ab+/:以a开头开始匹配,如果匹配到了a,并且在a后面匹配到了b,则返回abbb...;
35 1次:表示a后面没有b,就不返回.如果有b则返回ab.有一个b则返回一个b
36 多次:表示a后面没有b,就不返回.如果有b则返回ab.有多个b则返回多个b
37 */
38 str = "ddadbbbbc";
39 reg = /ab+/g;
40 result = str.match(reg);
41 /*
42 ?:一般是对前一个字符的0次或1次匹配;
43 0:没有就是0次
44 1:有就匹配一次
45 */
46 str = "ddabbdbbbbabbc";
47 reg = /ab?/g;
48 result = str.match(reg); //ab,ab
49 /*
50 ?在星号和+,{},?后面,表示原始匹配的最小次数
51 星号最小次数0;
52 +:最小次数是1
53 */
54 str = "ddabbdbbbbabbc";
55 reg = /ab*?/g;
56 result = str.match(reg); //a,a
57
58 reg = /ab+?/g;
59 result = str.match(reg); //ab,ab
60
61 /*
62 .(点号):匹配一个单独的字符
63 */
64 str = "guoaaaaagio";
65 reg = /g.o/g;
66 result = str.match(reg); //guo
67
68 /*
69 (xxx):匹配字符串
70 */
71 str = "guoooooaaaaagjao";
72 reg = /g(uo*)a/g;
73 result = str.match(reg); //guoooooa
74
75 /*
76 x(?=y):匹配x,并且只有紧跟的后面是y
77 */
78 str = "guoyansi";
79 reg = /uo(?=yan)/g;
80 result = str.match(reg); //uo
81
82 /*
83 x(?!y):匹配x,并且紧跟后面的不是y
84 */
85
86 str = "guoyansi";
87 reg = /uo(?!yan)/g;
88 result = str.match(reg); //null
89 str = "guoyanuosi";
90 result = str.match(reg); //uo(后面一个uo)
91
92 reg = /\d+(?!\.)/g; /*匹配数组,*/
93 str = "54.235"; /*从数字开始匹配,匹配到之后,紧跟着后面的不能是数组*/
94 result = str.match(reg); //5,235
95 /*
96 \d:匹配数字字符
97 */
98 reg = /\d/g;
99 str = "123859";
100 result = str.match(reg); //1,2,3,8,5,9
101
102 /*
103 \D:匹配非数字字符
104 */
105 str = "abc1hfd8dsv";
106 reg = /\D/g;
107 result = str.match(reg); //a,b,c,h,f,d,d,s,v
108
109 /*
110 x|y:匹配x或y,如果x,y都匹配上了,返回x
111 */
112
113 reg = /uo|n/g;
114 str = "nguoyansi";
115 result = str.match(reg); //n,uo,n(在没有g的情况下,返回n)
116
117 /*
118 {n}匹配前一个字符的n次出现
119 */
120 str = "tabbcdabbt";
121 reg = /ab{2}/g;
122 result = str.match(reg); //abb,abb
123
124 /*
125 {n,}匹配前一个字符至少出现n次数
126 */
127 str = "tabbbbbcdabbt";
128 reg = /ab{2,}/g;
129 result = str.match(reg); //abbbbb,abb
130
131 /*
132 {n,m}匹配前一个字符至少出现n次,至多出现m次
133 */
134 str = "tabbbbbbcabbbbbbbdabbt";
135 reg = /ab{2,4}/g;
136 result = str.match(reg); //abbbbb,abbbb,abb
137
138 str = "tabbbbcabbbbbbbdabbt";
139 reg = /ab{2,4}c/g;
140 result = str.match(reg); //abbbbc
141
142 /*
143 [xyz]:匹配[]的一个字符,等同于[a-z],只匹配其中的一个字符,如果匹配到多个,则返回null
144 */
145 str = "abddgacdg";
146 reg = /a[bc]d/g;
147 result = str.match(reg); //abd,acd(bc连一起,就匹配不到)
148
149 /*
150 [^xyz]:匹配非[]中的一个字符
151 */
152 str = "abd";
153 reg = /a[^bc]d/;
154 result = str.match(reg); //null
155
156 str = "afddgatdg";
157 reg = /a[^bc]d/g;
158 result = str.match(reg); //afd,atd
159
160 /*
161 [\b]:匹配退格键
162 */
163
164 /*
165 \b:匹配一个词的边界符,例如空格或换行等等,当匹配换行符是,匹配参数m
166 */
167 reg = /\bc./g;
168 str = "Beijing is ca cbeautiful city";
169 result = str.match(reg); //ca,cb,ci
170
171 /*
172 \B:代表一个非边界
173 */
174 reg = /\Bi./g;
175 str = "Beijing is a beautiful city";
176 result = str.match(reg); //ij,in,if,it
177
178 /*
179 \f:匹配一个换页符
180 */
181
182 /*
183 \n:匹配一个换行符,因为是换行符,所以要加入参数m
184 */
185
186 /*
187 \r:匹配回车符
188 */
189
190 /*
191 \s:匹配空格符
192 */
193 str = "ab cd t";
194 reg = /b[\s]c/g;
195 result = str.match(reg); //b c
196
197 /*
198 \S:匹配非空格
199 */
200 str = "guoy ansiguoyansi";
201 reg = /y[\S]n/g;
202 result = str.match(reg); //yan
203
204 /*
205 \t:匹配横向的tab
206 */
207
208 /*
209 \v:匹配竖向的tab
210 */
211
212 /*
213 \w:匹配数字、_或字母[a-zA-Z0-9]
214 */
215 str = "g1u中5国ir人_r";
216 reg = /\w/g;
217 result = str.match(reg); //g,1,u,5,i,r,_,r
218
219 /*
220 \W:匹配飞数字、_或字母[^a-zA-Z0-9]
221 */
222 str = "g1u中5国ir人_r";
223 reg = /\W/g;
224 result = str.match(reg); //中,国,人
浅入javascript正则表达式的规则.的更多相关文章
- 浅谈JavaScript -- 正则表达式
什么是正则表达式? 正则表达式是由一个字符序列形成的搜索模式.可用于文本搜索和文本替换. 语法:/正则表达式主体/修饰符(可选) var patt=new RegExp(pattern,modifie ...
- 常用的JavaScript正则匹配规则代码收藏,很实用
收集一些常用的JavaScript正则表达式匹配规则,比如匹配电话号码.Email.中文字符.身份证号.邮编.QQ号.过滤空白行.匹配特定数字等.觉得这玩意是很有用的,只不过自己水平菜,老是自己写不出 ...
- 浅谈JavaScript中的正则表达式(适用初学者观看)
浅谈JavaScript中的正则表达式 1.什么是正则表达式(RegExp)? 官方定义: 正则表达式是一种特殊的字符串模式,用于匹配一组字符串,就好比用模具做产品,而正则就是这个模具,定义一种规则去 ...
- 理清JavaScript正则表达式--上篇
在JavaScript中,正则表达式由RegExp对象表示.RegExp对象呢,又可以通过直接量和构造函数RegExp两种方式创建,分别如下: //直接量 var re = /pattern/[g | ...
- javascript正则表达式 - 学习笔记
JavaScript 正则表达式 学习笔记 标签(空格分隔): 基础 JavaScript 正则表达式是用于匹配字符串中字符组合的模式.在javascript中,正则表达式也是对象.这些模式被用于Re ...
- mxgraph浅入
mxgraph浅入 参考文献:https://www.cnblogs.com/xuxg/articles/3246206.html 1.了解 (1)如何判断需要引入mxgraph产品:过程图.工作流和 ...
- 理清JavaScript正则表达式--下篇
紧接:"理清JavaScript正则表达式--上篇". 正则在String类中的应用 类String支持四种利用正则表达式的方法.分别是search.replace.match和s ...
- Python自动化 【第十八篇】:JavaScript 正则表达式及Django初识
本节内容 JavaScript 正则表达式 Django初识 正则表达式 1.定义正则表达式 /.../ 用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...
- DOM笔记(十):JavaScript正则表达式
一.RegExp ECMAScript通过RegExp类型类支持正则表达式,语法和Perl类似: var exp = /pattern/flags; patternb部分是任何简单的或复杂的正则表达式 ...
随机推荐
- javaRMI详解
前几天在阿里内推一面的时候,面试官问到了一个关于java中RMI(Remote Method Invocation)的问题,当时感觉自己回答的还比较好,他比较满意,但那是因为他问的比较浅,所以自己看了 ...
- struts2国际化全例 错误解决
在struts2中需要做国际化的有: jsp页面的国际化,action错误信息的国际化,转换错误信息的国际化,校验错误信息的国际化 在之前的例子中已经做过和国际化相关的例子了,在struts.xml中 ...
- 中国电信中兴F460光猫破解及路由级联设置
http://blog.csdn.net/pipisorry/article/details/50636541 中国电信中兴F460光猫破解,获取超级密码,修改配置. 之前家里的宽带升级了,换成了光纤 ...
- 给你的流添加缓冲装置——字节块ByteChunk
这是一个很重要的一个字节数组处理缓冲工具,它封装了字节缓冲器及对字节缓冲区的操作,包括对缓冲区的写入.读取.扩展缓冲区大小等等,另外还提供相应字符编码的转码操作.此工具让缓冲操作变得更加方便,除了缓冲 ...
- Android项目-高考作文-使用ORMLite抽象公共的Dao层
1, 定义统一的Dao接口 public interface IDao<T> { public abstract T getSingleById(int id); public abstr ...
- 分布式进阶(一)Windows 7下硬盘安装Ubuntu 14.04图文教程
Windows 7下硬盘安装Ubuntu 14.04图文教程 本人下载的是ubuntu-14.04.2-desktop-amd64.iso,经本人亲自测试的,折腾了一天的时间. 1)首先还是分区,在计 ...
- Spring注入
Spring注入 Spring注入是指在启动Spring容器加载bean配置的时候,完成对变量的赋值行为. 常用的两种注入方式: setter注入 构造注入 <?xml version=&quo ...
- UNIX环境高级编程——进程控制
一.进程标识符 ID为0的进程是调度进程,常常被称为交换进程.该进程是内核的一部分,它并不执行任何磁盘上的程序,因此也被称为系统进程.进程ID 1通常是init进程,在自举过程结束时由内核调用.ini ...
- OJ题:将一个字符串顺序翻转
题目描述 写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串. 之前写过这样的一个程序,用位运算的方法去操作指针,但是那样的方法未免就有点复杂啦,不如用以下这种,简单明了. 程序如下: #i ...
- Leetcode_125_Valid Palindrome
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41488377 Valid Palindrome Given ...