“第一次写简书文,马上也要参加实习了,虽然一直也有写笔记的习惯,但是都没有公开,以前写的现在看上去似乎也感觉欠妥,所以今天开始写第一篇简书文。”
目标
新手快速熟悉正则表达式的语法,用法,在空余时间多多练习都能掌握正则表达式的正确使用。本文的内容基于JavaScript。
正则表达式是什么?
通俗来讲,就是按照某种规则匹配字符串,正则表达式就是其中的规则。
借助Regexeper图形化工具理解正则表达式
这里推荐一个网站,是将正则表达式转换成图形,方便理解和检测正则表达式,个人觉得不错,但是在使用该网站之前必要的要了解网站里转换出来的图片内容含义。
(图片素材来自RegExper)
网站中:不同图形含义
start of line 表示正则表达式中的 ^,以XXX开头之意,型如[^abc] 这里的^表示的是非abc外的匹 配规则
end of line 表示正则表达式中的 $,结尾之意
group#+数字 表示正则表达式中的 () ,用于分组,分了组的可以通过$1,$2...$n获得分组相对应的 结果值,多用于反向取值
one of 表示正则表达式中的 [] ,用于构建一个简单类,符合该类中其中一个特征的即可
带箭头的循环 表示正则表达式中的 +,至少有一个之意
不带箭头的循环 表示正则表达式中的?,表示一个或者空分支
1...5 times 表说正则表达式中的{n,m},循环n-m次
正则表达式的语法
\b :匹配字符边界
\B :非边界字符
. :除了回车和换行之外的所有字符
\d: 数字字符
\D :非数字字符
\s :空白符
\S: 非空白符
\w :单词字符(字母数字下划线)
\W :非单词字符
? 出现0,1次
+ 出现1,多次
* 出现0,多次
{n} 出现n次
{n,m} 出现n到m次
{n,} 至少出现n次
| 或
RegExp对象
两种实例化RegExp的方式
1.字面量
var reg = /\d(\w)\d/g;
2.构造函数法
var reg = new RegExp();
注意:传递给RegExp构造函数的是字符串类型所以要添加\\双斜杠,如果是字面量则添加/反斜杠
题外话
还有很多细节就不说了什么i ,g,m ,以及该对象的属性等,再次不叙述,这里还有就是可以通过sublime这个IDE ctrl+F 进行正则练习。一定要多多尝试!多多尝试!!多多尝试!!!
下面普一些练习题
请帮我在该网页源码中查找如下内容:
1、查找所有汉字
2、查找Email地址
3、查找网址URL
4、查找国内电话号码
5、查找qq号码
6、查找身份证
7、查找中国邮编编码
8、查找中国身份证
9、查找由26个英文字母组成的字符串
10、查找由26个英文字母的大写组成的字符串
11、查找由26个英文字母的小写组成的字符串
12、查找由数字和26个英文字母组成的字符串
13、查找由数字、26个英文字母或者下划线组成的字符串
请帮我设计一个网站,某些表单如下要求:
只能输入数字
只能输入n位的数字
只能输入至少n位数字
只能输入m-n位的数字
只能输入零和非零开头的数字
只能输入有两位小数的正实数
只能输入有1-3位小数的正实数
只能输入非零的正整数
只能输入非零的负整数
只能输入长度为3的字符
只能输入由26个英文字母组成的字符串
只能输入由26个大写英文字母组成的字符串
只能输入由26个小写英文字母组成的字符串
只能输入由数字和26个英文字母组成的字符串
只能输入由数字、26个英文字母或者下划线组成的字符串
验证用户密码正确格式为:以字母开头,长度在6-18之间,
只能包含字符、数字和下划线。
验证是否含有^%&'',;=?$"等字符
只能输入汉字
验证Email地址
验证InternetURL
验证电话号码
验证身份证号(15位或18位数字)
验证一年的12个月
验证一个月的31天