1.split

我们都知道,字符串的split方法是将字符串分割成一个字符串的数组。在学习正则之前,我们通常分隔符为空格或者一个字母。

  1. var str = 'I am a student';
  2. var res = str.split(' '); //['I','am','a','student']

知道了正则之后,可以在括号里写一个正则表达式,可以根据正则表达式还分割字符串

  1. //根据字母将字符串分割开
  2. var str = "1a2b3c4d5e6f7";
  3. var res = str.split(/[a-z]/);
  4. console.log(res);
  5. // [ '1', '2', '3', '4', '5', '6', '7' ]

2.search

search方法和indexOf方法类似,唯一的差别在于search方法可以将正则表达式作为参数。
返回第一个找到的正则的下标,且不能全局查找

  1. /* search()可以搜索字符中是否含有指定内容
  2. - 搜索字符串中是否包含 abc 或 aec 或 afc*/
  3. var target = "hello abc hello afc aec";
  4. var result = target.search(/a[bef]c/);
  5. console.log(result);
  6. // 6

3.match

match方法可以根据正则表达式,从一个字符串中将符合条件的内容提取出来,返回一个数组。match方法,不会改变字符串结构。

  1. /*找出字符串里的所有字母*/
  2. var str = "1a2b3c4d5e6f7";
  3. var res = str.match(/[a-z]/g);
  4. console.log(res);
  5. // [ 'a', 'b', 'c', 'd', 'e', 'f' ]

4.replace

replace()可以将字符串中指定内容替换为新的内容 ;返回一个新的字符串,所以replace不会改变原字符串的结构

  1. /*将字符串里的所有a替换为@_@*/
  2. var str = "1a2b3a4a5c6d";
  3. var res = str.replace(/a/g,"@_@");
  4. console.log(res);
  5. // 1@_@2b3@_@4@_@5c6d

注意,这里是要替换所有的a,所以需要加上匹配模式g,全局替换