【JavaScript--正则表达式】一些常见的表达式及其用法

发布于:2023-01-04 ⋅ 阅读:(310) ⋅ 点赞:(0)

一,正则表达式的定义

正则表达式( 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

四,元字符

定义:在正则表达式中是具有特殊意义的专用符号,如 ^ 、$ 、+ 等。

参考网址:

正则表达式 - JavaScript | MDN正则表达式是用于匹配字符串中字符组合的模式。在 JavaScript 中,正则表达式也是对象。这些模式被用于 RegExp 的 exec 和 test 方法,以及 String 的 match、matchAll、replace、search 和 split 方法。本章介绍 JavaScript 正则表达式。https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions

^:表示匹配行首的文本(以谁开始

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}$/

更多:

正则表达式在线测试 | 菜鸟工具