##正则
###正则的概念
####什么是正则
正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。
正则的作用
1)对表单域项目(用户名、密码、邮箱、qq号码、手机等等)进行验证
2)网络爬虫(一个网站到另一个网站的页面上去获取对方的相关信息)
3)内容替换、获取
前台的验证、正则处理满足条件的字符串(网络爬虫 Python编程)数据采集(大宗点评:商家评论 抓取) curl函数库:模拟http请求。
应用场景
手机号替换:替换前:14466665138 替换后 134****5678
敏感词替换:
原字符串:发发达中方规划导共产党
替换后:发发达xxx辅xxx地方规划导xxx
正则的创建
字面量创建
var reg = /hello/;
RegExp对象方法
test()方法
- 判断正则表达式是否匹配成功
- 成功返回true,失败返回false
<script type="text/javascript">
//创建字符串
var str = '123456';
//var obj = new RegExp('123');
var obj = /123/;
var ret = obj.test(str);
document.write(ret);
</script>
exec方法
- 匹配符合正则表达式条件的数据
- 成功返回数组
- 失败返回null
<script type="text/javascript">
//创建字符串
var str = '12345123451234567';
//创建正则表达式对象
//var obj = new RegExp('12','g');
var obj = /12/g;
//调用exec方法匹配数据(拓展,看一下效果)
document.write(obj.exec(str));
var row;
while(row = obj.exec(str)) {
document.write(row);
}
正则的字符串调用函数(需要掌握)
在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。
search() 方法
语法:字符串对象.search(待查找的字符串|正则)
作用:用于搜索字符串中指定的元素
返回:返回符合条件的第一个元素下标,没找到返回-1
match()
语法:字符串对象.match(待匹配的字符串|正则表达式)
作用:匹配符合条件的内容
返回:返回一个数组
replace() 方法
语法:字符串对象.replace(待匹配的字符串|正则表达式,替换的内容)
作用:用于替换字符串中的数据
返回:返回新的字符串(替换后的字符串)
正则语法
正则字符类
匹配a-z任意一个字符, 正则:[a-z]
匹配A-Z任意一个字符, 正则:[A-Z]
匹配26个英文字母(大小写), 正则:[a-zA-Z]
匹配一个数字, 正则:[0-9]
匹配一个字符可以是数字、字母和下划线:[0-9a-zA-Z_]
匹配非数字,正则:[^0-9]
匹配非字母,正则:[^a-zA-Z]
取反: 如果需要取反在第一个“[”后面添加“^”符号即可
常用字符类
\d 匹配数字,相当于:[0-9]
\D 匹配非数字,相当于[^0-9]
\w 匹配数字、字母、下划线,相当于:[0-9a-zA-Z_]
\W 匹配非数字、字母、下划线,相当于:[^0-9a-zA-Z_]
\s 匹配空白字符串(空格)
\S 匹配非空白字符串
. 匹配所有字符
重复字符
* 指重复0到多次
+ 指重复1到多次,至少出现一次 /a+/
? 指重复0到1次,最多一次
{n} 指匹配n次,如:{6} 匹配8次 /a{6}/
{n, m} 指匹配n到m次,如:{1,5} 匹配1~5次 /a{1,5}/
{n, } 指匹配至少n次,如:{3,} 匹配至少1次 /a{3,}/
常用定位符
^ 限定行首数据
$ 限定行尾数据