你的浏览器不支持canvas

做你害怕做的事情,然后你会发现,不过如此。

《智能社:JavaScript教程——从入门到精通》第32集笔记 JS正则表达式

时间: 作者: 黄运鑫

本文章属原创文章,未经作者许可,禁止转载,复制,下载,以及用作商业用途。原作者保留所有解释权。


笔记目录

  1. 《智能社:JavaScript教程——从入门到精通》第1~5集笔记 事件
  2. 《智能社:JavaScript教程——从入门到精通》第6~10集笔记
  3. 《智能社:JavaScript教程——从入门到精通》第11~14集笔记 DOM操作和表格
  4. 《智能社:JavaScript教程——从入门到精通》第15~19集笔记 运动
  5. 《智能社:JavaScript教程——从入门到精通》第20~21集笔记 鼠标键盘事件
  6. 《智能社:JavaScript教程——从入门到精通》第22~23集笔记 事件高级应用
  7. 《智能社:JavaScript教程——从入门到精通》第24~25集笔记 Ajax
  8. 《智能社:JavaScript教程——从入门到精通》第26~29集笔记 面向对象
  9. 《智能社:JavaScript教程——从入门到精通》第30~31集笔记 坐标和cookie
  10. 《智能社:JavaScript教程——从入门到精通》第32集笔记 JS正则表达式
  • 本文为原创,转载请注明:https://blog.xinpapa.com/2017/12/21/zhinengshe32/

详细内容

1.正则表达式基础1

  • 复习字符串操作
    • search:查找字符在字符串中的位置
    • substring:获取子字符串
    • charAt:获取某个字符
    • split:分割字符串获得数组
  • 例子,找出字符串中的所有数字
    • 用传统字符串操作完成
        var str = "asdfsdf12 sdfdsd 23 ^&*()_566ssdf!@#$999";
        var arr = [];
        var tmp = "";
        for (var i = 0; i < str.length; i++) {
            if (str.charAt(i) >= "0" && str.charAt(i) <= "9") {
                tmp += str.charAt(i);
            } else {
                if (tmp.length > 0) {
                    arr.push(tmp);
                    tmp = "";
                }
            }
        }
        if (tmp.length > 0) {
            arr.push(tmp);
            tmp = "";
        }
        alert(arr);
      
    • 用正则表达式完成
        var str = "asdfsdf12 sdfdsd 23 ^&*()_566ssdf!@#$999";
        alert(str.match(/\d+/g));
      

2.正则表达式基础2

  • 强大的字符串匹配工具
  • RegExp对象
    • JS风格——new RegExp("a","i")
    • per风格——/a/i

3.字符串与正则配合1

  • search
    • 字符串搜索
      • 返回出现的位置
      • 忽略大小写:i——ignore
      • 判断浏览器类型
  • match
    • 获取匹配的项目
      • 量词:+
      • 量词变化:\d、\d\d\d+
      • 全局匹配:g——global,意思是找到全部
  • 例子:找出所有数字
    var str = "asdfsdf12 sdfdsd 23 ^&*()_566ssdf!@#$999";
    alert(str.match(/\d+/g));
    

4.字符串与正则配合2

  • replace
    • 替换所有匹配
      • 返回替换后的字符串
  • 例子:敏感词过滤
      <body>
          <textarea id="txt1" rows="10" cols="40"></textarea><br/>
          <input id="btn1" type="button" value="过滤" /><br/>
          <textarea id="txt2" rows="10" cols="40"></textarea>
      </body>
    
    window.onload = function () {
      var oBtn = document.getElementById("btn1");
      var oTxt1 = document.getElementById("txt1");
      var oTxt2 = document.getElementById("txt2");
      oBtn.onclick = function () {
          var re = /北京|百度|淘宝/g;
          oTxt2.value = oTxt1.value.replace(re, "***");
      };
    };
    

5.字符串

  • 任意字符
    • [abc]
      • 例子:o[usb]t——obj,意思是匹配o开头的,第二个字符是usb,第三个字符是t的字符串
    • 范围
      • [a-z][0-9]
        • 例子:id[0-9],意思是匹配id后数字是0~9的字符串
    • 排除
      • [^a]
        • 例子:o[^0-9]t,意思是匹配o开头,第二位除了0~9,第三位是t的字符串
  • 行首行尾
    • 验证邮箱的正则表达式:/^\w+@[a-z0-9]+\.[a-z]+$/
    • '^''$'表示从字符串的开头到结尾只能出现匹配正则的内容

对于本文内容有问题或建议的小伙伴,欢迎在文章底部留言交流讨论。