// 一对括号,半中括号,半大括号,backslash,gapline,Head,End,AnySingleChar,limitedNum
( ) [ { \ | ^ $ . ? + *
###优先级
正则表达式从左到右进行计算,并遵循优先级顺序,这与算术表达式非常类似。 下表从最高到最低说明了各种正则表达式运算符的优先级顺序
x转义符:\
x括号:(),(?:), [, ]
x限定:* , + , ?
x定位点:^, $, \t
// test 检查字符串中指定值,返回布尔值
var reg = /a-z/gi;
reg.test('ikitty blog') && console.log('has letter');
####相关的函数-match
match是string对象的方法,可接受一个正则表达式作为参数。
如果没有g标志,返回的是null或包含第一个匹配项和子表达式的对象,该对象中还返回index和input两个属性,index表示匹配项的位置,input表示原始字符串(和exec一致)。
如果有g标志,则不捕获子表达式;返回的是null或包含所有匹配项的数组;不会返回index和input
var ua = window.navigator.userAgent ,
regM = /(\w)\/(\d+)/i,
regMG = /(\w)\/(\d+)/gi,
ret = {} ;
ret.m = ua.match(regM);
ret.mg = ua.match(regMG);
console.log(ret);
####相关的函数-exec
和g标志没有关系,每次只会匹配一次,返回匹配项和子表达式。并返回index和input两个属性
var ua = window.navigator.userAgent ,
regE = /(\w)\/(\d+)/i,
regEG = /(\w)\/(\d+)/gi,
ret = {} ;
ret.e = regE.exec(ua);
ret.eg = regEG.exec(ua);
console.log(ret);
// 如果需要全文匹配,则需要循环执行exec
var temp = '',
count = 0 ;
while (temp = regEG.exec(ua)) {
console.log(temp) ;
//如果需要每次都是从头检索则需要手动重置正则的lastIndex
temp = '';
while ((temp = regEG.exec(ua)) && count < 5) {
count++;
// 重置lastIndex以保证每次都会从头开始检索
regEG.exec('');
console.log(temp) ;
###常用正则