正则知识点

前端之家收集整理的这篇文章主要介绍了正则知识点前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

正则的两种写法:

第一种(标准写法):
new RegExp(规则,修饰符);

第二种(简写):
/规则/

  • d:一个数字
  • D:一个非数字
  • w:一个数字、字母、下划线
  • W:一个非数字、字母、下划线
  • n:换行
  • s:空格
  • S:非空格
  • b:边界符
  • .:任意字符除了n
  • []:在中括号里任意选择一个字符。
  • [^]:排除
  • {}:量词范围
  • {0,1}/?:最小可以没有最大1个
  • {0,}/*:最小没有,最大无限
  • {1,}/+:最小1个,最大无限
  • {n}:固定的次数
  • 修饰符:i -> 忽略大小写。
  • 转义符:\

正则的方法-text

test:检测是否正则匹配的内容,如果正则成立那么返回一个布尔值。

  • 正则.test(string);
  1. var str = 'RegExp';
  2. var re = new RegExp('p','i');
  3. console.log(re.test(str));

字符串方法-match

match:将匹配到的字符放到一个数组中。

string.match(正则);

当匹配到的字符只有一个的时候,会显示出多个属性

index: 匹配字符的位置

input: 所有内容

而length为1

  • match如果找不到返回null
  1. var str = 'das37213dsa321hjkh321321';
  2. console.log(str.match(/\d+/g))

字符串的方法-search

search:找到(可以指定也可以正则匹配)匹配的字符位置。

sting.search(字符串||正则);

  1. var str = 'aacabca523c';
  2. console.log(str.search(/\d/));
  • search如果找不到返回-1

字符串方法-replace

replace:replace

string.replace(要替换谁||可以用正则,替换成什么||函数);

返回值为替换好的字符串。

注意:
如果使用函数,那么一定要有retrun,不然为undefind

一般情况下

函数内的第一个参数是当前匹配的字符。

函数内的第二个参数是当前匹配的索引值。

函数内的第三个参数是当前总的字符串。

函数内的第四个以后参数都为undefined。

  1. var str = '中国共产党,习近平总书记说:“法轮功是邪教!”';
  2. str.replace(/中国共产党|习近平|法轮功|邪教/g,function($0,$1,$2,$3,$4){
  3. console.log($0,$4);
  4. });

子项 - ()

从左往右数

如果正则中有子项

函数的第一个参数之后就是匹配到的子项值,
当参数的个数等于子项个数+1的时候,之后都为正常模式下的参数了(比如:索引,整个字符,undefined..)

  1. var str = '2017/2/17';
  2. var str = str.replace(/(\d+)\D+(\d+)\D+(\d+)/,$3){
  3. //console.log($1,$3);
  4. return $1 + '年' + $2 + '月' + $3 + '日';
  5. });
  6. console.log(str);

子项重定向

  1. var str = 'ssssssssaaaaaabbbbbb';
  2. str.replace(/(\w)\1+/g,$1){
  3. console.log($1);
  4. });

猜你在找的正则表达式相关文章