网址:https://regexper.com/
目的:改变关键字
用法:关键字用//包裹,后面的是修饰符
修饰符:g (全局),i(忽略大小写)
1.起步
var reg = /猪/g;
var p = "你猪啊,你怎么这么菜,你真是猪";
var res = p.replace(reg,"*")
console.log(res)
2.支持正则的方法
- match
- search
- replace
- split
var p = "hello worldL"
var reg = /l/ig;
console.log(p.match(reg)) //l l l L
3.检索是否存在
- test(reg) 返回boolean值
- lastIndex 属性 返回下标
Tips:使用test最好不加g 因为它是一段一段检索的
while(reg.test(str)){
console.log(reg.lastIndex)
}
4.备选字符集
4-1 具有相同字的词 /str0[str1,str2,str3]/
/* 上海,上天,上去 */
/* 备选字符集:规定某一位字符的备选字符列表 */
var reg = /上[海,天,去]/g
var str = "我要去上海,我要上去东方明珠,去上天";
console.log(str.replace(reg,"**"))
4-2 连号
var str = "2312312fjsklfjsdf";
var reg = /[0-9]/g;
console.log(str.replace(reg,'*'))
console.log(str.replace(/[a-z]/ig,'*'))
console.log(str.replace(/[0-9a-zA-Z]/g,'*'))
result:
*******fjsklfjsdf
2312312**********
*****************
5.预定义字符集
Tips:针对常用的备选字符集提供的简化符号
[0-9] == \d
[0-9a-zA-Z_] == \w
空格 换行 == \s
除换行符所有的字符 == .
var str = '232e3fa_s d';
var reg = /\d/g;
console.log(str.replace(reg,'*'))
result:
***e*fa_s d
6.量词
量词就是规定某一类字符出现的次数
{3} 只出现三次
{3,} 三次以上
{3,6} 三到六次
var reg = /\d{3,4}天/g;
var str = '2323天萨里的记录卡开了家434天';
console.log(str.replace(reg,'*'))
result:
*萨里的记录卡开了家*
替换量词
1个,或1个以上 m>=1 {1,} == +
0个或多个 {0,} == *
0,1 {0,1} == ?
Tips:关于问号 {3,5}?会替换三个数,不加?替换五个数,这个就是贪婪
```html var reg = /\d+/; var str = “321313fsfsgdr”; console.log(str.replace(reg,’*’))
result: *fsfsgdr
<a name="jYGdD"></a>
### 7.严格匹配
- ^以什么开头
- $以什么结尾
- /^ $/严格匹配
- | 或
- trim() == reg=/^\s+|\s$/g
<a name="fcbRa"></a>
### 8.其他实例,有BUG仅作实例
```html
身份证号匹配 18位 /\d{17}[0-9xX]/
密码八位数,首个字符字母 var reg = /^[a-z]+[a-z0-9]{7,}$/i;
邮箱 /^[0-9a-z]+@[0-9a-z]+\.com$/