浅入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部分是任何简单的或复杂的正则表达式 ...
随机推荐
- 运用 三种 原生 谷歌 阿里 解析和生成json
三种类生成JSON数据方法 JSON(原生): 第一种 JSONStringer和JSONObject区别在于添加对象时是按顺序添加的比如说 JSONStringer 添加 a:1 b:2 c:3那么 ...
- UNIX网络编程——关于socket阻塞与非阻塞情况下的recv、send、read、write返回值
1.阻塞模式与非阻塞模式下recv的返回值各代表什么意思?有没有 区别?(就我目前了解阻塞与非阻塞recv返回值没有区分,都是 <0:出错,=0:连接关闭,>0接收到数据大小,特别:返回 ...
- Cocos2Dv3.4在AppDelegate中不返回的情况及解决
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们通常想在app启动的早期做一些事情,可能放在AppDeleg ...
- 任务执行器——Executor
上节说到接收器Acceptor在接收到socket后会有一系列简单的处理,其中将socket扔进线程池是最重要的一步,线程池是一个怎样东西?其原理在前面的"线程池原理"章节已经说明 ...
- CCM和GCM
分组密码链接-消息认证码--CCM Counter with CBC-MAC 组成CCM的关键算法是AES加密算法.CTR工作模式和CMAC认证算法,在加密和MAC算法中共用一个密钥K. CCM ...
- 【一天一道LeetCode】#91. Decode Ways
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 A messa ...
- Django练习——TodoList
TodoList是django入门一个比较基础的例程,主要参考如下博客,写的非常好: simple-todo: http://www.cnblogs.com/cacique/archive/2012/ ...
- ant+eclipse知识点详解及使用案例
ant的优点和地位就不再阐述,下面直接上知识点: 在java中使用xml文件开发,有以下基本语法 (1)project:每个ant程序有且只有一个此标签,而且是类似于html的总标签,有name,de ...
- 教你自己写Android第三方库
其实Android studio的出现很大程度上方便了我们Android开发人员,今天我们说说怎么构建我们自己的库. 依次按File->New Moudle->android Librar ...
- (二十七)QQ好友列表的实现
QQ好友列表通过plist读取,plist的结构为一组字典,每个字典内有本组的信息和另外一组字典代表好友. 要读取plist,选择合适的数据结构,例如NSArray,然后调用initWithConte ...