JS学习之正则

  • 时间:2018-06-06 01:53 作者:沧桑肥肥 来源:沧桑肥肥 阅读:155
  • 扫一扫,手机访问
摘要:1.【正则】就是使用来操作(匹配和捕获)的一系列规则;匹配:校验字符串能否符合我们的规则;返回值——布尔值 匹配这里使用的是正则的方法:test(),reg.text( );捕获:把符合规则的内容拎出来:返回值——符合规则的字符串2.【正则的2种创立方式】字面量:不可以进行变量拼接,特殊含义的字符不

1.【正则】

就是使用来操作(匹配和捕获)的一系列规则;

匹配:校验字符串能否符合我们的规则;返回值——布尔值

匹配这里使用的是正则的方法:test(),reg.text( );

捕获:把符合规则的内容拎出来:返回值——符合规则的字符串

2.【正则的2种创立方式】

  • 字面量:不可以进行变量拼接,特殊含义的字符不需要转译;

  • 实例:能进行变量的拼接,特殊含义的字符需要转译;

3.【元字符和修饰符】

  • 元字符:就是放在两个斜杠之间的,不认识的代码;

  • 包含:①代表特殊含义的元字符;②代表次数的量词元字符;③修饰符

1)代表特殊含义的元字符

\ 转义

| 或者

() 分组

. 代表除了\n以外的其余字符;

\n 换行

\b 开头结尾和空格

^ 开头

$ 结尾

\s 空格 \d数字 \w 数字字母下划线

\S 非空格 \D非数字 \W 非数字字母下划线

[a-z] 字母 [^a-z]非字母

[abc]abc三个字母中的任何一个 [^abc]除了这三个字母中的任何一个字符

2)代表次数的量词元字符;

* 0到多

+ 1到多

? 0次或者1次 可有可无的意思

{n} 正好n次;

{n,} n到屡次

{n,m} n次到m次

3)修饰符 g 全局 i 忽略大小写 m换行;

5.中括号总结:

1)中括号中的字符没有特殊含义;(但是像\w还是有特殊含义的)

2)中括号中,不会出现两位数;

6.关于小括号:

1)提高优先级:但凡有|出现的时候,外面肯定要加上()来提高优先级; /^(18|19)$/

2)分组

3)只匹配不捕获 (?:)

7.正则的捕获:

1)exec:exec拿到的是个数组,一般情况下这个数组有三项:

1.符合大正则的内容

2.找到内容的索引

3.原始字符串;

2)match:

3)replace:

8.正则捕获量大特性:

1)懒惰性:

处理措施:全局g;

2)贪婪性:

处理措施:在两次元字符后面加上?号;

9.正则的属性:lastIndex:代表开始查找位置的索引;

lastIndex主要受两方面的影响:1)exec 2)test;

10.问号的使用法:

1)? 量词元字符,代表可有可无

2)+? 处理正则的贪婪性;

3)(?:) 只匹配不捕获;

11.exec和match区别:

1)在全局g的情况下,每次只可以拿到一个数组,但是,exec能把符合正则内容字符串进行小分组的摘取;

2)在全局g的情况下,match可以拿到符合正则内容的字符串的数组;但他没有小分组

12.exec 能封装match; 也是replace的实现原理;(replace中的arguments跟exec拿到的值是一模一样的)

1)手机号正则 /^1\d{10}$/

2)有效数字正则 /^[+-]?(\d|([1-9]\d+))(\.\d+)?$/

3)验证年龄 18-65 /^((18|19)|([2-5]\d)|(6[0-5]))$/;

4)验证邮箱的正则 /^([\w.-]+)@([0-9a-zA-Z]+)(\.[a-zA-Z]{2,4}){1,2}$/

5)中文名字 /^[\\u4e00-\\u9fa5]{2,4}$/

6)身份证号

var reg = /^\d{17}(\d|X)$/;

var reg = /^(\d{2})(\d{4})(\d{4})(\d{2})(\d{2})(\d{2})(\d)(\d|X)$/;

7)非空验证 !/^\s*$/

8)去除首尾空格 /(^ +)|( +$)/g

9)偷小说 /<[^<>]>/g; 注意:textarea 千万不要通过innerHTML取值,由于你拿不到,只可以通过value才可以内容;

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

10)模板引擎实现原理

var str='my name is {0},my age is {1} , i come form {2}';

11)日期格式化及封装

var strCode='2016-6-23 6:41:30';

2016年6月23 06点41分30秒

12)var str='20160514';

var ary=['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'];

13)var str='全日制第七期学费:14800';

var ary=['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'];

14)敏感词过滤

15)统计出现次数最多的单词(可可以是多个),及出现多少次

16)queryURLParameter 获取地址栏中的参数

var str='http://image.baidu.com/search/index?tn=baiduimage&amp;ipn=r&amp;ct=201326592&amp;cl=2&amp;lm=-1&amp;st=-1&amp;fm=result&amp;fr=&amp;sf=1&amp;fmq=1462967508128_R&amp;pv=&amp;ic=0&amp;nc=1&amp;z=&amp;se=1&amp;showtab=0&amp;fb=0&amp;width=&amp;height=&amp;face=0&amp;istype=2&amp;ie=utf-8&amp;word=%E5%88%98%E8%AF%97%E8%AF%97'

var reg=/(([^?&amp;=]+)=([^?&amp;=]+))/g;

  • 全部评论(0)
上一篇:锦瑟华年 JS
下一篇:js的typeof使用法
最新发布的资讯信息
【系统环境|】WEB前端学习:JS实现中文简体繁体切换(2019-08-22 12:38)
【系统环境|服务器应用】前台开发入门到实战:HTML5语义化元素你真的用的正确吗?(2019-08-22 04:16)
【系统环境|服务器应用】Vue仿微信app页面跳转动画(2019-08-22 04:16)
【系统环境|服务器应用】webstorm使用快捷键快速修正单个文件的style(2019-08-22 04:16)
【系统环境|服务器应用】程序员从学生到阿里经历的5次蜕变:海阔凭鱼跃,天高任鸟飞(2019-08-22 04:16)
【系统环境|服务器应用】var、let、const的区别(2019-08-22 04:16)
【系统环境|服务器应用】mini-ui加载框Indicator 被遮挡问题(2019-08-22 04:15)
【系统环境|服务器应用】【对讲机的那点事】玩对讲机,对于对讲机的亚音你理解吗?(2019-08-22 04:15)
【系统环境|服务器应用】前台中高级面试,内功心法(上)(2019-08-22 04:15)
【系统环境|服务器应用】17、改进轮播图之功能封装(2019-08-22 04:15)
手机二维码手机访问领取大礼包
返回顶部