JS——正则

正则的声明:

1、构造函数:var 变量名= new RegExp(/表达式/); 

2、直接量:var 变量名= /表达式/;

test()方法:

1、正则对象方法,检测测试字符串是否符合该规则,返回true和false,参数(测试字符串)

2、Boolean = 表达式.test("要验证的内容");  

正则内部类:

1、预定义类

.       除了换行和回车之外([^

])的任意字符(“”空字符不行)
d     [0-9]                   数字字符
D     [^0-9]                  非数字字符
s     [	
x0Bf
]          空白字符 
S     [^ 	
x0Bf
]        非空白字符
w     [a-zA-Z_0-9]            单词字符
W     [^a-zA-Z_0-9]           非单词字符 

2、简单类

1、/string/.test(“string”);            必须是完整的,只多不能少
/andy/.test(“andy”)                      // true
/andy/.test(“andylv”)                    // true
/andy/.test(“an”)                        // false
//一句话,只要完整包含了andy 就可以了(有他就行)

2、/[string]/.test(“string”);          只要包含里面的任何一个就可以
/[andy]/.test("andy");                  // true
/[andy]/.test("an");                    // true
/[andy]/.test("ady");                   // true
/[andy]/.test("anll");                  // true
/[andy]/.test("assd");                  // true
/[andy]/.test("ss");                    // false
/[3aH8]/.test("ss");                    // false

3、负向类

//中括号内,前面加个元字符^进行取反
//可以不够,但是不能多
//不够和正好,返回false;多了或者没有返回true
console.log(/[^abc]/.test('a'));        //false
console.log(/[^abc]/.test('abc'));      //false
console.log(/[^abc]/.test('abcd'));     //true

4、范围类

//有时匹配的东西过多,而且类型又相同,全部输入太麻烦,我们可以在中间加了个横线
console.log(/[a-z]/.test('1111'));
console.log(/[A-Z]/.test('aa'));

5、组合类

//用中括号匹配不同类型的单个字符。
console.log(/[a-m1-5]/.test("b"))       //true

正则边界

1、^ 会匹配行或者字符串的起始位置(^在[]中才表示非!这里表示开始)

2、$ 会匹配行或字符串的结尾位置

//^$在一起 表示必须是精确匹配
console.log(/lily/.test("lilyname"));    // true
console.log(/^lily$/.test("lily"));      // true
console.log(/^lily$/.test("ly"));        // false

量词

//量词的意思是多个字母,重复最后一个
*   (贪婪)   重复零次或更多       (>=0)
+   (懒惰)   重复一次或更多次      (>=1)
?   (占有)   重复零次或一次       (0||1)  数量为0或者1

比较特殊的{}

//{}重复多少次的意思,可以是个范围值,也可以是具体个数
{n}         n次           (x=n) 
{n,}        重复n次或更多   (x>=n)
{n,m}       重复出现的次数比n多但比m少 (n<=x<=m)
*           {0,}
+           {1,}
?           {0,1}

或者“|”,配合()提高权限

//匹配座机号码
var regexp  = /^(0d{2}-d{8})|(0d{3}-d{7})$/;
var demo    = /^0d{2}-d{8}$|^0d{3}-d{7}$/;

 符号

1、() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。(s*)表示连续空格的字符串。

2、[]是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[s*]表示空格或者*号,([sS]*)表示换行空格在内的所有文本

3、{}一般用来表示匹配的长度,比如 s{3} 表示匹配三个空格,s[1,3]表示匹配一到三个空格

4、(0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配数字(注意后面有 *,可以为空)[0-9]+ 匹配数字(注意后面有 +,不可以为空){1-9} 写法错误。

5、[0-9]{0,9} 表示长度为 0 到 9 的数字字符串。

原文地址:https://www.cnblogs.com/wuqiuxue/p/8023538.html