RegExp

作者: april_Dong | 来源:发表于2016-08-02 18:15 被阅读0次

    正则表达式

    • /pattern/attrs
    • new RegEx(pattern,attrs)
      /jerry/i i表示不区分大小写
      regexObj.test(str) 测试正则表达式与指定字符串是否匹配
      锚点:匹配一个位置
      • ^:起始位置
      • $:结尾位置
      • \b:单词边界
        字符类:匹配一类字符中的一个
      • . :任一字符(换行除外)
        元字符:具有特殊意义的字符
      • ^、$、\b
      • \d:0-9
      • \D:[^\d]
      • \s:空白符
      • \S:[^\s]
      • \w:[A-Za-z0-9_]
      • \W:[^\w]
        量词:出现的次数
      • {m,n}:m到n次
      • *:{0,}出现零到无穷多次
      • ?:{0,1}出现零次或者一次
      • +:{1,}出现一次或者多次
        转义符:需要匹配的字符是元字符
        多选分支
      • 或 | /thi(c|n)k/ === /thi[cn]k/
        /.(png|jpg|jpeg|gif)$/
        /^(.+)@(126|163|yahoo).com$/
    屏幕快照 2016-08-08 下午4.52.42.png
    捕获:保存匹配到的字符串,日后再用
    - () :捕获
    - (?:):不捕获
    str.match(regexp);
    str.replace(regexp/substr,replacement) 替换一个子串
    var url='http://blog.163.com/album?id=1#comment';
    var reg = /(https?:)//([/]+)(/[?])?(?[^#])?(#.*)?/;
    var arr = url.match(reg);
    var protocol = arr[1];
    var host = arr[2];
    var pathname = arr[3];
    var search = arr[4];
    var hash = arr[5];

    var str = 'The price of tomato is 5.';
    str.replace(/(\d+)/,'$1.00');
    var str = 'The price of tomato is 5,the price of apple is 10.';
    str.replace(/(\d+)/g,'$1.00');

    regexpObj.exec()
    更强大的检索功能

    • 更详尽的结果:index
    • 过程的状态:lastIndex
    屏幕快照 2016-08-08 下午10.47.50.png

    正则表达式的贪婪模式和懒惰模式,区别在于是否有量词?修饰,被量词?修饰则是懒惰模式。

    相关文章

      网友评论

          本文标题:RegExp

          本文链接:https://www.haomeiwen.com/subject/hgifsttx.html