浅入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部分是任何简单的或复杂的正则表达式 ...
随机推荐
- Shell脚本编程入门(一)
最近在学shell,记录一下. if语句的使用: 1.判断两个参数大小 #!/bin/sh #a test about if statement a=10 b=20 if [ $a -eq $b ]; ...
- 06 Activity 4中启动模式
前言:改变Activity的启动模式可以清单文件AndroidManifest的Activity标签添加属性android:launchMode="standard"中修改如下图: ...
- Android初级教程理论知识(第十章Fragment与动画)
Fragment 用途:在一个Activity里切换界面,切换界面时只切换Fragment里面的内容 生命周期方法跟Activity一致,可以理解把其为就是一个Activity 定义布局文件作为Fra ...
- Android的SeekBar和RateBar的使用-android学习之旅(三十二)
SeekBar简介 SeekBar允许用户拖动,进行调节经常用于音量调节等方面. android:thumb设置drawable对象来表示拖动的物体. setOnSeekBarChangeListen ...
- 手把手带你走进MVP +Dagger2 + DataBinding+ Rxjava+Retrofit 的世界
0.0 Android开发现在的变化用一个词来形容就是 :翻天覆地 越来越多的项目使用了MVP + Rxjava+Retrofit +Dagger2 + DataBinding等等东西.. 但是这些东 ...
- 新手学python(1):解析XML与系统调用
最近需要做一个项目,完成一批音乐的格式转换.由于之前并未学习过python,所以想借此机会学一下.在介绍自己的学习过程之前,先把项目简要描述一下.目前在一台服务器a上有几十万首原始的MP3音乐文件,现 ...
- Spark SQL官方文档阅读--待完善
1,DataFrame是一个将数据格式化为列形式的分布式容器,类似于一个关系型数据库表. 编程入口:SQLContext 2,SQLContext由SparkContext对象创建 也可创建一个功能更 ...
- JS中回调函数的写法
<!DOCTYPE HTML> <html><head> <meta charset="GBK" /><title>回 ...
- SpringMVC项目中启动自加载Listener
package com.kuman.cartoon.listener; import java.util.List; import org.springframework.beans.factory. ...
- PA模块常用表
SELECT * FROM pa_projects_all; --项目 SELECT * FROM pa_project_types; --项目类型 SELECT * FROM pa_project_ ...