今天在看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正则表达式的规则.的更多相关文章

  1. 浅谈JavaScript -- 正则表达式

    什么是正则表达式? 正则表达式是由一个字符序列形成的搜索模式.可用于文本搜索和文本替换. 语法:/正则表达式主体/修饰符(可选) var patt=new RegExp(pattern,modifie ...

  2. 常用的JavaScript正则匹配规则代码收藏,很实用

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

  3. 浅谈JavaScript中的正则表达式(适用初学者观看)

    浅谈JavaScript中的正则表达式 1.什么是正则表达式(RegExp)? 官方定义: 正则表达式是一种特殊的字符串模式,用于匹配一组字符串,就好比用模具做产品,而正则就是这个模具,定义一种规则去 ...

  4. 理清JavaScript正则表达式--上篇

    在JavaScript中,正则表达式由RegExp对象表示.RegExp对象呢,又可以通过直接量和构造函数RegExp两种方式创建,分别如下: //直接量 var re = /pattern/[g | ...

  5. javascript正则表达式 - 学习笔记

    JavaScript 正则表达式 学习笔记 标签(空格分隔): 基础 JavaScript 正则表达式是用于匹配字符串中字符组合的模式.在javascript中,正则表达式也是对象.这些模式被用于Re ...

  6. mxgraph浅入

    mxgraph浅入 参考文献:https://www.cnblogs.com/xuxg/articles/3246206.html 1.了解 (1)如何判断需要引入mxgraph产品:过程图.工作流和 ...

  7. 理清JavaScript正则表达式--下篇

    紧接:"理清JavaScript正则表达式--上篇". 正则在String类中的应用 类String支持四种利用正则表达式的方法.分别是search.replace.match和s ...

  8. Python自动化 【第十八篇】:JavaScript 正则表达式及Django初识

    本节内容 JavaScript 正则表达式 Django初识 正则表达式 1.定义正则表达式 /.../  用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...

  9. DOM笔记(十):JavaScript正则表达式

    一.RegExp ECMAScript通过RegExp类型类支持正则表达式,语法和Perl类似: var exp = /pattern/flags; patternb部分是任何简单的或复杂的正则表达式 ...

随机推荐

  1. Android支持多国语言化Values命名

    android多国语言文件夹文件汇总如下: 维吾尔文(中国):values-ug-rCN 中文(中国):values-zh-rCN 中文(台湾):values-zh-rTW 中文(香港):values ...

  2. IBM SPSS 实习总结

    2015过完年,我知道导师要出国了,自己也算是水了一个idea 的论文.希望研二能找个实习,早听说西安IBM这边有学长在里面实习过,2月底联系了一下简历就塞了过去.面试就在锦业一路软件园他们上班的地方 ...

  3. 解读“Deep Neural Decision Forests” 2015 Winner of the David Marr Prize

    2015ICCV会议最佳论文奖,即有着"计算机视觉界最高奖"之称的马尔奖(Marr Prize)授予了由微软剑桥研究院(Microsoft Research, Cambridge  ...

  4. Fragment详解-android学习之旅(四十八)

    Fragment的设计哲学 Fragment的继承体系 Fragment的开发 大部分都会继承如下的三个方法 Fragment与Activity的通信 Fragment与Activity交互信息 Fr ...

  5. javascript之prototype原型属性案例

    练习: 给字符串对象添加一个toCharArray的方法,然后再添加一个reverse(翻转)的 方法 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...

  6. 【Unity Shaders】Using Textures for Effects —— 实现Photoshop的色阶效果

    本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...

  7. (NO.00003)iOS游戏简单的机器人投射游戏成形记(九)

    现在按住手臂可以非常自然和舒服的旋转了,丝般顺滑:移动停止,旋转立即停止,没有什么惯性影响了. 以上一共介绍了2中旋转方式,到底采用哪种方式呢?其实看实际游戏的需求和个人的喜好了.本猫在Level中添 ...

  8. Java进阶(八)Java加密技术之对称加密 非对称加密 不可逆加密算法

    对称加密 非对称加密 不可逆加密算法 根据密钥类型不同可以将现代密码技术分为两类:对称加密算法(私钥密码体系)和非对称加密算法(公钥密码体系). 1 对称加密算法 原理 对称加密算法中,数据加密和解密 ...

  9. 【一天一道LeetCode】#58. Length of Last Word

    一天一道LeetCode系列 (一)题目 Given a string s consists of upper/lower-case alphabets and empty space charact ...

  10. 简译《Dissecting SQL Server Execution Plans》——连载总入口

    转载请注明出处 由于工作及学习需要,最近看了一下<Dissecting SQL Server Execution Plans>,这是少有的专门描述执行计划的优秀书籍,为了快速查找并供入门同 ...