正则表达式

定义:通过正则规定的语法,写出一个表达式,利用该表达式对字符串进行检验、过滤、查找等,总之它就是处理字符串的一种特定语法。

1.字面量形式创建正则表达式:var reg=/string/g (g是全局匹配,经多次调用可以查找到所有满足条件的数据,不添加g,不管调用多少次都是返回第一个符合条件的数据)

2.构造函数的形式创建正则表达式:var reg=new RegExp(/hello/);

正则表达式方法

  • test()检测某个字符串是否符合指定规则,返回布尔值
  • exec()检测的字符串有满足指定规则的字符,返回数组,否则返回null

    1.边界符 开头^ 结尾$

    2.字符集 [ ] 一系列的字符中匹配一个即可

    3.修饰符 i 和修饰符g的位置一样,g表示全局匹配,i表示不区分大小写

    4.匹配一位数字 \d

    5.匹配数字或字母 \w

    6.取反 [^ ]

    7.字符至少出现过一次 + 使用方式/qwe+/

    8.{min,max} 限定字符出现次数的范围

    {1,3} 出现1或2或3个数字

    {3} 出现3个数字

    {3,}至少出现3个数字

    9.贪婪匹配 .* 匹配任意多个字符

    10.非贪婪匹配 .*?

    11.分组 ()对将要匹配的数据进行分组 /:(.*?),/g

    12.IP规则

    13. | 或

    字符串中可以使用的正则方法

    1.replace(需要被替换的字符,需要替换成的字符) 如str.replace(/[毒品|打架|骂人|斗殴]/g ,’*‘)

    2.math 数组。match(正则替换敏感词汇)

    1. // 1.replace
    2. var str = '你好,毒品,呵呵,好好吕布啊v斗殴都可能发表v发打架,毒药v那开发v被罚款部分v傻子'
    3. var reg = /毒品|斗殴|打架|毒药|傻子/g
    4. console.log(str.replace(reg,'*'));
    5. // 根据敏感词汇的长度,动态设置*的数量
    6. reg = /毒品|毒|斗殴|打架|傻/g;
    7. var result = str.replace(reg,function(v){
    8. console.log(v); //指匹配到的敏感性词汇
    9. var s = '';
    10. for(var i=0;i<v.length;i++){
    11. s+='*'
    12. }
    13. return s;
    14. });
    15. console.log(result);
    16. // 2. match 将匹配到的数据提取出来, 返回数组
    17. str = '1232qq.com,fgabgtvrusina.com,vnsfibs163.com';
    18. reg = /qq|sina|163|vns/g;
    19. console.log(str.match(reg)); // ['qq', 'sina', '163']