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&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1462967508128_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&word=%E5%88%98%E8%AF%97%E8%AF%97'

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

JS学习:第二周——NO.2正则的更多相关文章

  1. 【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第二周测验【中英】

    [中英][吴恩达课后测验]Course 1 - 神经网络和深度学习 - 第二周测验 第2周测验 - 神经网络基础 神经元节点计算什么? [ ]神经元节点先计算激活函数,再计算线性函数(z = Wx + ...

  2. 201671010140. 2016-2017-2 《Java程序设计》java学习第二周

                                 学习第二周(Java基本程序设计结构)      这一周,着重学习了Java的简单程序设计实现及运行,通过自己操作,发现Java的程序语法大面 ...

  3. H5学习第二周

    怎么说,在各种感觉中h5学习的第二周已经过来了,先总结一下,感觉学习h5是一件让我爱恨交加的事,学会一些新的知识并把它成功运行出来的时候是非常激动和兴奋的,但是有时候搞不懂一个标签或者属性的时候,就有 ...

  4. Java学习第二周学习笔记

    20145307<Java程序设计>第二周学习总结 教材学习内容总结 Java语言中的很多基本语法都和C语言类似,以下Java中的基本语法 标识符 标识符是程序中自定义的一些名称. 由26 ...

  5. IP通信基础学习第二周

    此周的课程学习应该算是我对此科目真正学校生涯的开始吧,尽管我对该科目仍感到很陌生. 课程一开头,老师就给我们简单的介绍了网络的定义.发展及其分类,重点讲了网络拓扑结构及其在局域网上具体的分层情况.该部 ...

  6. Java学习第二周

    这一周观看了黑马程序员毕向东的教学视频学习了数组的创建:数组元素的使用及遍历,类的声明,成员方法的声明,构造器的声明 数据类型[] 数组名 = new 数据类型[长度];数据类型[] 数组名 = {数 ...

  7. JS学习第二课

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. Ext JS学习第二天 我们所熟悉的javascript(一)

    此文用来记录学习笔记: •ExtJS是一个强大的javascript框架,如果想真正的掌握ExtJS,那么我们必须要对javascript有一定的认识,所以很有必要静下心来,抱着一本javascrip ...

  9. JAVA学习第二周课后作业

    Java 的基本运行单位是类.类由数据成员和函数成员组成.变量之间可以相互转换.String是一个类.static是静态.全局的意思.经过测试,Java的枚举类型定义的Size与String一样都不是 ...

随机推荐

  1. /var/log/messages

    messages 该日志文件是许多进程日志文件的汇总,从该文件可以看出任何入侵企图或成功的入侵,包括整体系统信息,是系统最核心的日志.它包含了系统启动时的引导消息,以及系统运行时的其他状态消息.IO ...

  2. 使用Guid做主键和int做主键性能比较

    使用Guid做主键和int做主键性能比较 在数据库的设计中我们常常用Guid或int来做主键,根据所学的知识一直感觉int做主键效率要高,但没有做仔细的测试无法 说明道理.碰巧今天在数据库的优化过程中 ...

  3. [LeetCode] Sliding Window Maximum 滑动窗口最大值

    Given an array nums, there is a sliding window of size k which is moving from the very left of the a ...

  4. jetbrain系列IDE设置

    1.代码提示默认ctrl+space(这是全角半角切换),改为alt+/,这与cyclic expand word冲突,直接删掉它就可以了 2.ctrl+M,进入presentation mode,与 ...

  5. 【WPF】新复制wpf项目报错

    错误提示:Program does not contain a static 'Main' method suitable for an entry point 1.App.xaml 文件属性:生成操 ...

  6. python网络编程-OSI七层模型详解

    OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...

  7. 一个c#的输入框函数

    private static string InputBox(string Caption, string Hint, string Default) { Form InputForm = new F ...

  8. Beta版本冲刺计划及安排

    经过紧张的Alpha阶段,很多组已经从完全不熟悉语言和环境,到现在能够实现初步的功能.下一阶段即将加快编码进度,完成系统功能.强化软件工程的体会.Beta阶段的冲刺时间为期七天,安排在2016.12. ...

  9. 开发socketserver 以及定制开发自己的FTP服务器

    socket server 示例 #服务端程序 import socketserver class TcpHandler(socketserver.BaseRequestHandler): def h ...

  10. [半转]1px边框 移动端

    半转的意思是借鉴参考,搬砖,加了一些自己的想法. 在移动端里,因为存在2倍像素的问题,所以很多时候,移动端上的1px边框并不是意义上的.从下图红色框看到dpr:2.0 ,表示1px等于2倍的物理像素. ...