正则表达式
- /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$/
捕获:保存匹配到的字符串,日后再用
- () :捕获
- (?:):不捕获
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
正则表达式的贪婪模式和懒惰模式,区别在于是否有量词?修饰,被量词?修饰则是懒惰模式。