• JS学习:第二周——NO.2正则


    1.【正则】
    就是用来操作(匹配和捕获)的一系列规则;
    匹配:校验字符串是否符合我们的规则;返回值——布尔值
              匹配这里用的是正则的方法:test(),reg.text( );
    捕获:把符合规则的内容拎出来:返回值——符合规则的字符串
    2.【正则的2种创建方式】
    • 字面量:不能进行变量拼接,特殊含义的字符不需要转译;
    • 实例:可以进行变量的拼接,特殊含义的字符需要转译;
    3.【元字符和修饰符】
    • 元字符:就是放在两个斜杠之间的,不认识的代码;
    • 包含:①代表特殊含义的元字符;②代表次数的量词元字符;③修饰符
    1)代表特殊含义的元字符
        转义
       | 或
       () 分组
       . 代表除了 以外的其他字符;
        换行
        开头结尾和空格
       ^ 开头
       $ 结尾
       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)手机号正则     /^1d{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;
     
     
     
     
     
     
     
  • 相关阅读:
    第一次JAVA课,第一次课堂考,课后感受【代码部分】
    第一次JAVA课,第一次课堂考,课后感受
    小学期的开始【9.2进度报告】
    暑假的最后一周【8.26进度报告】
    一周质量报告【8.19进度报告】
    人月神话读后感(一)
    Web版记账本开发记录(二)开发过程遇到的问题小结1 对数据库的区间查询
    Web版记账本开发记录(一)代码和功能展示
    tomcat错误The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
    库存物资管理系统
  • 原文地址:https://www.cnblogs.com/HKCC/p/6071218.html
Copyright © 2020-2023  润新知