RegExp正则表达式

一、元字符、量词

量词出现在元字符后面 如\d+,限定出现在前面的元字符的次数

\d : 0-9之间的任意一个数字 ;(\d只占一个位置)
\w : 数字,字母 ,下划线 0-9 a-z A-Z _;
\s : 空格或者空白等;
\D : 除了\d;
\W : 除了\w;
\S : 除了\s;
 . : 除了\n之外的任意一个字符;
 \ : 转义字符;
 | : 或者;
() : 分组;  (?:) 取消分组只是用来提高优先级
\n : 匹配换行符;
\b : 匹配边界 字符串的开头和结尾 空格的两边都是边界 => 不占用字符串位数;
 ^ : 限定开始位置 => 本身不占位置;
 $ : 限定结束位置 => 本身不占位置;
[a-z] : 任意字母 []中的表示任意一个都可以; ([18-65]不能出现两位数)
[^a-z] : 非字母 []中^代表除了;
[abc] : abc三个字母中的任何一个 [^abc]除了这三个字母中的任何一个字符;
* : 0到多个;
+ : 1到多个;
? : 0次或1次 可有可无;
{n} : 正好n次;
{n,} : n到多次;
{n,m} : n次到m次;

二、正则的方法

reg.test(str) 用来验证字符串是否符合正则 符合返回true 否则返回false;
reg.exec() 用来捕获符合规则的字符串,
str.match(reg) 返回匹配成功的数组或null;(非全局匹配时和exec返回一样);
match和exec都受分组()的影响,match只在没有标识符g的情况下才显示小分组的内容;

str.replace(reg,newStr) 正则去匹配字符串,匹配成功的字符去替换成新的字符串;
str.replace(reg,fn) 第二个参数也可以是一个函数;

三、零宽断言

零宽度正预测先行断言 (?=exp),字符出现的位置的右边必须匹配到exp;
零宽度负预测先行断言 (?!exp),字符出现的位置的右边不能是exp;
零宽度正回顾后发断言 (?<=exp),字符出现的位置的前边是exp;
零宽度负回顾后发断言 (?

四、常用正则

正则默认贪婪性(尽可能多的去捕获符合条件的内容);
量词元字符后加 ? 变为懒惰性(尽可能的少的去捕获符合条件的内容)

/^\s+|\s+$/g   //匹配前后空格 
/(18|19)|([2-5]\d)|(6[0-5])/  //匹配从18到65

参考:https://www.cnblogs.com/lnlvinso/p/10467941.html

你可能感兴趣的:(RegExp正则表达式)