定义:正则表达式(regular expression)描述了一种字符串匹配的模式(pattern)
- 正则创建方法
1. 直接量语法 => /pattern/attributes
2. 创建 RegExp 对象的语法 => new RegExp(pattern, attributes)
pattern(pætɚn 模式/表达式) 指的是那堆有各种符号组成的
attributes('ætrə,bjʊt 属性/修饰符) 就三个选项 i(ignore case 忽略大小写|执行对大小写不敏感的匹配) g(global 执行全局匹配,查找所有匹配而非在找到第一个匹配后停止) m(mutiple允许多行匹配 不太清楚)
- 方括号(方括号用于查找某个范围内的字符,括号内的就是范围,例如[abc], [a-z], [0-9])
var aa = 'abcdefghigklmnopqrstuvwxyz' var result = { '/[^ade]/g': aa.match(/[^ade]/g), //["b", "c", "f", "g", "h", "i", "g", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"] '/[^ade][bcd]/g': aa.match(/[^ade][bcd]/g), //["bc"] '/[^ade]|[bcd]/g': aa.match(/[^ade]|[bcd]/g), //["b", "c", "d", "f", "g", "h", "i", "g", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"] '/[^ade]&[bcd]/g': aa.match(/[^ade]&[bcd]/g), //null '/(ab)/g': aa.match(/(ab)/g), //["ab"] '/(ad)/g': aa.match(/(ad)/g), //null '/(ab)./g': aa.match(/(ab)./g), //["abc"] '/(ab).../g': aa.match(/(ab).../g), //["abcde"] '/(ab.).../g': aa.match(/(ab.).../g), //["abcdef"] '/(ab...).../g': aa.match(/(ab...).../g), //["abcdefgh"] '/(a|b|c)/g': aa.match(/(a|b|c)/g), //["a", "b", "c"] '/(a|b|c)./g': aa.match(/(a|b|c)./g), //["ab", "cd"] '/(a|b|c.)./g': aa.match(/(a|b|c.)./g), //["ab", "cde"] '/(a|b.|c.)./g': aa.match(/(a|b.|c.)./g), //["ab", "cde"] '/(a|b.|e.)./g': aa.match(/(a|b.|e.)./g), //["ab", "efg"] };
script标签替换
html = html.replace(/<script.*?/lang/.*?></ig, matchStr => {
let result = matchStr.replace(/.js.*?"/ig, `.js?stamp=${stamp}"`);
return result;
})
一、校验数字的表达式
/^0?0?86d{11}/g; // 以0086,086,86开头, 外加11位数字的字符串