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. jsp九大内置对象

    application例如用于计算网站访问量时可用到.

  2. 原: 安装VMtools过程流水帐

    以下基于 vm12.0.0 1. 一定要打开虚拟机的 cd设置 2. 然后 cd   '/medal/VMware tools '   (注意一定要加 '', 因为VMware tools 有空格) ...

  3. [poj1741][tree] (树/点分治)

    Description Give a tree with n vertices,each edge has a length(positive integer less than 1001). Def ...

  4. Oracle 判断某個字段的值是不是数字

    转:https://my.oschina.net/bairrfhoinn/blog/207835 摘要: 壹共有三种方法,分别是使用 to_number().regexp_like() 和 trans ...

  5. centos系统编译安装nginx+php环境另加独立mysql教程

    以前看过的安装nginx+php环境都带了mysql数据库了,这个是因为很多站长都是nginx+php+mysql都在同一台服务器了,那么今天我们是单独处理了,一个是nginx+php环境,然后mys ...

  6. [LeetCode] Trapping Rain Water 收集雨水

    Given n non-negative integers representing an elevation map where the width of each bar is 1, comput ...

  7. C语言中struct位域的定义和使用

    位域的定义和使用 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可.为了节省存储空间,并使处理简便,C语言又 ...

  8. volley用法之 以post方式发送 json 参数

    需求是这样 我们需要发送一个post请求向服务器要参数.要求是发送的post参数也要是json格式. 简单一点的是这样的: 如果要发送的是这样简单的json格式,我们可以简单的使用map来实现: Re ...

  9. python--django项目如何设置用自己的iP地址访问项目

    一.首先需要执行>manage.py runserver 0.0.0.0:8000. 二.在setting.py里面需要添加ALLOWED_HOSTS="*".

  10. PHP 的 foreach

    foreach 可以 针对 string 操作,不过会生成一个警告,并跳过该 expression, 举例: $ids = '123'; foreach ($ids as $item){ print_ ...