第七天正则表达式

正则表达式的理念:

            1. 关于字符串的一些方法
            2. 操作字符串,不用正则完全可以,如果用正则的话就会:方便并且效率-极高
            3.正则也叫规则表达式
      例子--1:找数字:
       var str = 'sjd23 2 l289k 232432432  j  9';   期望结果: 23 2 289  232432432  9 
              (1):传统做法:循环判断
              (2):正则做法:str.match(/\d+/g)使用正则时要先new一个正则出来:

正则的使用方法:

           new RegExp();RegExp:正则单词简写,
           完整写法:Regular Expression  new RegExp('规则');

正则里string两个方法:

      (1):str.search(正则);  //在字符串中查找,找到匹配表达式的第一个字符串的位置   
                     indexOf  找不到,返回 -1  
      (2):str.match(正则);//在字符串中用 正则表达式来匹配,返回的是符合规则的字符串数组
                     找不到,返回 null

使用正则找字母的几种写法:

         new RegExp('k');new RegExp(规则)--区分大小写
         new RegExp(‘规则’ ,‘选项’)--i是指选项并且不去区分大小写 :
         new RegExp('正则','选项');
         new RegExp(‘规则’ ,‘选项’)  的简写:/规则/选项;

正则的转义:

      \     表示转义符
      \ d   表示数字
      \n    表示换行
      \w    表示字母 数字和下划线()
      \s      空白  空格
      \D    表示数字  
      \W    表示非字母 数字 下滑线
      \S    表示非空白  空格
      \.    表示统配符的意思也叫任意字符
      例子:str.match(/\d+/g) 在正则中:\d  ---  表示数字

正则特性:

           1、懒只会找一次,后面的都不管
                g :正则的一个选项,表示: 全局(查找,匹配)
                 i:忽略大小写
           2、笨、蠢  找数字的时候,把数字都拆分开了,不是找到一个就完事了
           3、贪:  一组中有多少字符都不分开

使用正则测试敏感词过滤的小例子:

               str.replace() ---如果说没有正则,replace()就是个废物
               str.replace('原字符串','目标字符串');
               str.replace(正则|字符串,'目标字符串');

正则里或的表示方法:

       JavaScript里: 双杠表示或||    在正则中单个杠表示|  或的意思
       str.replace(正则|字符串,字符串|函数);

正则里的修饰符:

        (1)  ^:表示行首  
        (2)  $:表示行尾
       正则里m表示多行模式:当前行的开头和结尾 单行模式:^行首、$行尾 表示就是整个字符串的开头和结尾
        选项:m ---多行模式  muti - line
        选项:  gi gm   *选项
         i,g,m使用时,可以直接写在一起
         replace()  可以连写

正则里的量词:

          {n}       n个
          {n,m}     最少n个,最多m个
          {n,}      最少n个,最多不限
          {1,}      最少1个,最多不限
          {0,1}     最少0个,最多1个   --  有无
          {0,}      最少0个,最多不限 +
          {1,}      最少个,最多不限  ? 
          {0,1}     最少0个,最多1个
         * {0,}     最少0个,最多不限-- 不推荐使用

正则里 []中括号:

          1)或  [ab]  --  a  或 b
                [1a2d]   --1或a或2或d
                [18]   --  1或8 //  'ad18sd  1kds  8sd  '
        2)范围
            [0-9]  从0到9
            [a-z]  小写字母
            [A-Z]  大写字母
            [a-z0-9A-Z]   3)排除^
            [^0-9]表示: 除了数字
            str.search(expr)str.match(expr)expr.test(str);  //测试  看 表达式和字符串是否能匹配上,如果能返回true,否则false

正则的应用:

      匹配  固定电话:
      思路:    82323238   5727323    010-88234582    0476-5329878
      如果有-,前面是3或4位数字
      如果有-,后面是7或8位数字
      电话号一共不超过12位数字
      如果有区号,第一位是0,可以没有区号和区号可有可无
        1:有区号:第一位是0:后面是
        2:电话部分:第一位不是0    6-7位数字
          使用 .test  方法,本身有一些问题,  不太严谨  如果要用test,请一定要加上  /^ $/
          正则里点 .  和 | 使用或  一定要加括号
    步骤:
     1)用你的语言来翻译一下规则
     2)分段来考虑  固定电话:区号电话
     3)翻译成代码

固定电话正则代码:

        var regx = /^(0[1-9]\d{1,2}\-)?[1-9]\d{6,7}$/;手机号:
        var regx = /^1[345789]\d{9}$/;邮箱:
        var regx = /^\w{1,30}@[0-9a-z\-]{2,20}(\.[a-z1-9]{2,3}){1,2}$/;年龄:

var regx = /^(1[89])|([2-9]\d)|(100)$/;>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容