网址:https://regexper.com/
目的:改变关键字
用法:关键字用//包裹,后面的是修饰符
修饰符:g (全局),i(忽略大小写)

1.起步

  1. var reg = /猪/g;
  2. var p = "你猪啊,你怎么这么菜,你真是猪";
  3. var res = p.replace(reg,"*")
  4. console.log(res)

2.支持正则的方法

  • match
  • search
  • replace
  • split
  1. var p = "hello worldL"
  2. var reg = /l/ig;
  3. console.log(p.match(reg)) //l l l L

3.检索是否存在

  • test(reg) 返回boolean值
  • lastIndex 属性 返回下标

    Tips:使用test最好不加g 因为它是一段一段检索的

  1. while(reg.test(str)){
  2. console.log(reg.lastIndex)
  3. }

4.备选字符集

4-1 具有相同字的词 /str0[str1,str2,str3]/

  1. /* 上海,上天,上去 */
  2. /* 备选字符集:规定某一位字符的备选字符列表 */
  3. var reg = /上[海,天,去]/g
  4. var str = "我要去上海,我要上去东方明珠,去上天";
  5. console.log(str.replace(reg,"**"))

4-2 连号

  1. var str = "2312312fjsklfjsdf";
  2. var reg = /[0-9]/g;
  3. console.log(str.replace(reg,'*'))
  4. console.log(str.replace(/[a-z]/ig,'*'))
  5. console.log(str.replace(/[0-9a-zA-Z]/g,'*'))
  6. result:
  7. *******fjsklfjsdf
  8. 2312312**********
  9. *****************

5.预定义字符集

Tips:针对常用的备选字符集提供的简化符号

[0-9] == \d
[0-9a-zA-Z_] == \w
空格 换行 == \s
除换行符所有的字符 == .

  1. var str = '232e3fa_s d';
  2. var reg = /\d/g;
  3. console.log(str.replace(reg,'*'))
  4. result:
  5. ***e*fa_s d

6.量词

量词就是规定某一类字符出现的次数
{3} 只出现三次
{3,} 三次以上
{3,6} 三到六次

  1. var reg = /\d{3,4}天/g;
  2. var str = '2323天萨里的记录卡开了家434天';
  3. console.log(str.replace(reg,'*'))
  4. result:
  5. *萨里的记录卡开了家*


替换量词
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

  1. <a name="jYGdD"></a>
  2. ### 7.严格匹配
  3. - ^以什么开头
  4. - $以什么结尾
  5. - /^ $/严格匹配
  6. - | 或
  7. - trim() == reg=/^\s+|\s$/g
  8. <a name="fcbRa"></a>
  9. ### 8.其他实例,有BUG仅作实例
  10. ```html
  11. 身份证号匹配 18位 /\d{17}[0-9xX]/
  12. 密码八位数,首个字符字母 var reg = /^[a-z]+[a-z0-9]{7,}$/i;
  13. 邮箱 /^[0-9a-z]+@[0-9a-z]+\.com$/