RegExp

正则表达式

  • /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$/

RegExp_第1张图片
屏幕快照 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
RegExp_第2张图片
屏幕快照 2016-08-08 下午10.47.50.png

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

你可能感兴趣的:(RegExp)