正则表达式(英语:Regular Expression,通常在代码中简写为regex、regexp或RE)使用单个字符串来描述和匹配符合句法规则的一系列字符串搜索模式(要么匹配字符,要么匹配位置)。
两种模糊匹配(纵向模糊和横向模糊)
横向模糊匹配:匹配的字符长度不固定。
例:h{m,n},表示 h 最少连续出现 m 次,最多 n 次。
var reg = /ah{1,5}u/g; // 匹配的第一个字符是 a,再是 1 ~ 5 个 h,最后是字符串 u,g 全局匹配。 var str = "ahu ahhu ahhhu ahhhhu ahhhhhu ahhhhhhu"; console.log(str.match(reg)); // 打印结果:['ahu', 'ahhu', 'ahhhu', 'ahhhhu', 'ahhhhhu']
纵向模糊匹配:匹配长度固定,匹配字符的一个字符,不能确定一个字符,可以多个字符。
例:h[upc],表示匹配 u、p、c 中间的任何一个字符。
var reg = /h[upc]k/g; // 匹配的第一个字符是 h,再是 u、p、c 任何一个,最后是字符串 k,g 全局匹配。 var str = "huk hpk hck hhk huuk"; console.log(str.match(reg)); // 打印结果:['huk', 'hpk', 'hck']
可用于文本搜索和文本替换。
常用的字符串法 search()
和 replace()
。
search() 该方法使用表达式搜索匹配,然后返回匹配位置。
replace() 修改后的字符串改后的字符串。
两者都接受字符串作为搜索参数。
正则表达式修饰符
i,执行对大小写不敏感的匹配。
var str = "Study JavaScript"; var patt1 = /javascript/i; var result = str.match(patt1); alert(result);//结果:JavaScript var str = "Study JavaScript"; var patt1 = /javascript/; var result = str.match(patt1); alert(result);//结果:null
g,全局匹配(找到所有匹配,而不是在找到第一个匹配后停止)。