一,正则表达式的定义
正则表达式( Regular Expression )是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象。
特点:
1. 灵活性、逻辑性和功能性非常的强。
2. 可以迅速地用极简单的方式达到字符串的复杂控制。
3. 理解起来比较难懂。比如:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
4. 实际开发,一般都是直接复制写好的正则表达式. 但是要求会使用正则表达式并且根据实际情况修改正则表达式. 比如用户名: /^[a-z0-9_-]{3,16}$/
二,正则表达式创建
1:对象方式创建
- var regxp= new RegExp(/123/);
-
- console.log(regexp);
2:字面量方式创建
var regxp= /123/;
三,测试正则表达式(test)
test() 正则对象方法,用于检测字符串是否符合该规则,该对象会返回 true 或 false,其参数是测试字符串。
- var regexp = new RegExp(/123/);
-
- console.log(regexp.test("123"));//true
- console.log(regexp.test("234"));//false
四,元字符
定义:在正则表达式中是具有特殊意义的专用符号,如 ^ 、$ 、+ 等。
参考网址:
^:表示匹配行首的文本(以谁开始)
- var regexp = new RegExp(/^123/);
-
- console.log(regexp.test("223"))//false
-
- console.log(regexp.test("1232"))//true
$:表示匹配行尾的文本(以谁结束)
- var regexp = new RegExp(/123$/);
-
- console.log(regexp.test("123"))//true
-
- console.log(regexp.test("1232"))//false
注意:如果 ^和 $ 在一起,表示必须是精确匹配。
- var regexp = new RegExp(/^123$/);
-
- console.log(regexp.test("123"))//true
-
- console.log(regexp.test("1232"))//false
五,字符类
字符类表示有一系列字符可供选择,只要匹配其中一个就可以了。所有可供选择的字符都放在方括号内。
1:只要含123任意一个字母 就为true
- var regexp = /[123]/
-
-
- console.log(regexp.test("1abc"));//true
-
- console.log(regexp.test("abc"));//false
2: 必须是123其中的一个开头
- var regexp1 = /^[123]/
-
- console.log(regexp1.test("a1"));//false
-
- console.log(regexp1.test("1abc"));//true
3:只要是a-z就返回true
- var reg = /^[a-z]$/
-
- console.log(reg.test('a'));//true
-
- console.log(reg.test('z'));//true
-
- console.log(reg.test('a1'));//false
4:字母数组组合
- var reg3 = /^[a-zA-Z0-9]$/;
-
- console.log(reg3.test('a'));//true
-
- console.log(reg3.test('1'));//true
5:取反 方括号内部加上 ^ 表示取反,只要包含方括号内的字符,都返回 false 。
- var reg2 = /^[^a-zA-Z0-9]$/;
-
- console.log(reg2.test('a'));//false
-
- console.log(reg2.test('B'));//false
六,量词符
量词 | 说明 |
* | 重复0次或更多次 |
+ | 重复1次或更多次 |
? | 重复0次或1次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
- var regexp = /^[123]+$/; //重复1次或更多次
-
- console.log(regexp.test("111"));//true
-
- console.log(regexp.test("a23"));//false
-
-
七,预定义类
预定类 | 说明 |
---|---|
\d | 匹配0-9之间的任意数字,相当于[0-9] |
\D | 匹配说有0-9以外的字符,相当于[^0-9] |
\w | 匹配任意的字母,数字和下划线,相当于[A-Za-z0-9] |
\W | 除所有字母,数字和下划线的字符外,相当于[^A-Za-z0-9_] |
\s | 匹配空格(包括换行符,制表符,空格符),相等于[\t\r\n\v\f] |
\S | 匹配非空格的字符,相当于[^\t\r\n\v\f] |
八,常用的正则表达式
1 验证座机号码
- var reg = /^\d{3}-\d{8}|\d{4}-\d{7}$/;
-
- var reg = /^\d{3,4}-\d{7,8}$/;
7.2 验证手机号码
Var reg = /^1[3|4|5|7|8][0-9]{9}$/
7.3 验证身份证
15位或者18位
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
7.4 验证码用户名
帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):
var reg = /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/
更多: