js笔记07-正则表达式RegExp
2018-01-17 本文已影响13人
大飞哥
两种表示方式
/正则表达式/
或者 new RegExp('正则表达式')
var re1 = /ABC\-001/;
var re2 = new RegExp('ABC\\-001'); //注意 转义字符 \、
re1; // /ABC\-001/
re2; // /ABC\-001/
查看是否匹配
var re = /^\d{3}\-\d{3,8}$/;
re.test('010-12345'); // true
re.test('010-1234x'); // false
re.test('010 12345'); // false
切分字符串
可以识别多个空格
'a b c'.split(' '); // ['a', 'b', '', '', 'c']
'a b c'.split(/\s+/); // ['a', 'b', 'c']
'a,b, c d'.split(/[\s\,]+/); // ['a', 'b', 'c', 'd'] 逗号
'a,b;; c d'.split(/[\s\,\;]+/); // ['a', 'b', 'c', 'd'] 分号
分组
var re = /^(\d{3})-(\d{3,8})$/;
re.exec('010-12345'); // ['010-12345', '010', '12345']
re.exec('010 12345'); // null
贪婪匹配
var re = /^(\d+)(0*)$/;
re.exec('102300'); // ['102300', '102300', '']
var re = /^(\d+?)(0*)$/;// 加问号?
re.exec('102300'); // ['102300', '1023', '00']
全局搜索
增加标志g
var r1 = /test/g;
// 等价于:
var r2 = new RegExp('test', 'g');