JS 正则

string对象中关于正则表达式的方法

1. search()方法

该方法用于检索字符串中指定的子字符串,或检索与正 则表达式相匹配的字符串。
基本语法:stringObject.search(regexp);

2. match()方法

该方法用于在字符串内检索指定的值,或找到一个或者多个正则表达式的匹配。该方法类似于indexOf()或者lastIndexOf(); 但是它返回的是指定的值,而不是字符串的位置;
基本语法:stringObject.match(searchValue)或者stringObject.match(regexp)

3. replace()方法

该方法用于在字符串中使用一些字符替换另一些字符,或者替换一个与正则表达式匹配的子字符串;
基本语法:sstringObject.replace(regexp/substr,replacement);

3. split()方法

该方法把一个字符串分割成字符串数组。
基本语法:stringObject.split(separator,howmany);

RegExp对象方法

1. test()方法

该方法用于检测一个字符串是否匹配某个模式;
基本语法:RegExpObject.test(str);

2. exec()方法

该方法用于检索字符串中的正则表达式的匹配。
基本语法:RegExpObject.exec(string)

练习

  • 匹配价格: /^\d*(.\d{0,2})?$/
  • 身份证号码的匹配: /^(\d{14}|\d{17})(\d|[xX])$/
  • 单词的首字母大写:

    let replaceReg = (reg, str) => {
    str = str.toLowerCase();
    return str.replace(reg, m => m.toUpperCase());
    }
    let reg = /\b\w/g
    
  • 验证邮箱的正则表达式:/^ [0-9a-zA-Z]+(@[0-9a-zA-Z])+(.[0-9a-zA-Z_])/
  • 敏感词过滤:

    let str = '我草你妈哈哈背景天胡景涛哪肉涯剪短发欲望';
    let regExp = /草|肉|欲|胡景涛/g;
    let result = str.replace(regExp, function(match) {
    let len = match.length;
    let str;
    switch (len) {
        case 1:
          str = '*';
          break;
      case 2:
          str = "**";
          break;
      case 3:
       str = "***";
          break;
      default:
          str = '****';
      }
    return str;
    });
    console.log(result); //我*你妈哈哈背景天***哪*涯剪短发*望
    
  • 改字符串为驼峰命名:

    const str = 'get-element-by-id';
    function camelCased(str){
        let regExp = /-(\w)/g;
        return str.replace(regExp, (match, p) => p.toUpperCase());
    };
    console.log(camelCased(str));
    
  • 判断连续重复字母:

    let str1 = 'abc3d4e5';
    let str2 = 'aab2c3';
    let regExp = /([a-zA-Z])\1/;
    console.log(regExp.test(str1));//false
    console.log(regExp.test(str2));//true
    
  • 提取链接

    let reg = /(<a[.\s]*href\s*=\s*')(http:\/\/.*)('>\w*<\/a>)/gi;
    let html = "<div><a href='http://www.baidu.com'>222</a><p>344</p></div>";
    html.match(reg);
    console.log(RegExp.$1);
    

本文摘自: [http://www.cnblogs.com/tugenhua0707/p/5037811.html#_labe9][1]