admin 管理员组

文章数量: 887021


2024年2月23日发(作者:linux系统安装输入法)

js常用正则表达式语法大全

正则表达式是一种强大而灵活的文本匹配工具,在JavaScript中广泛应用于字符串操作、表单验证、搜索和替换等场景。掌握正则表达式的语法对于JavaScript开发者来说是至关重要的。本文将介绍JavaScript中常用的正则表达式语法。

1. 基本语法

1.1 字面量表示法

var regex = /pattern/;

1.2 构造函数表示法

var regex = new RegExp("pattern");

2. 元字符

元字符是正则表达式中具有特殊含义的字符。

2.1 普通字符

普通字符匹配其字面值,例如:

var regex = /abc/;

2.2 元字符

• .:匹配任意字符(除了换行符)。

• ^:匹配字符串的开始。

• $:匹配字符串的结束。

• *:匹配前一个字符0次或多次。

• +:匹配前一个字符1次或多次。

• ?:匹配前一个字符0次或1次。

• |:或,匹配两个任一之一。

• ( ):分组,将括号内的内容视为一个整体。

3. 字符类

字符类用于匹配一个字符的集合。

• [abc]:匹配字符a、b或c中的任意一个。

• [^abc]:匹配除了a、b、c之外的任意字符。

• [a-z]:匹配任意小写字母。

• [A-Z]:匹配任意大写字母。

• [0-9]:匹配任意数字。

4. 预定义字符类

预定义字符类是一些常用的字符类的缩写。

• d:匹配任意数字,相当于[0-9]。

• D:匹配任意非数字字符,相当于[^0-9]。

• w:匹配任意单词字符(字母、数字、下划线),相当于[a-zA-Z0-9_]。

• W:匹配任意非单词字符,相当于[^a-zA-Z0-9_]。

• s:匹配任意空白字符(空格、制表符、换行符等)。

• S:匹配任意非空白字符。

5. 量词

量词用于指定匹配的次数。

• *:匹配前一个字符0次或多次。

• +:匹配前一个字符1次或多次。

• ?:匹配前一个字符0次或1次。

• {n}:匹配前一个字符n次。

• {n,}:匹配前一个字符至少n次。

• {n,m}:匹配前一个字符至少n次且不超过m次。

6. 边界

边界用于指定匹配的位置。

• ^:匹配字符串的开始。

• $:匹配字符串的结束。

• b:匹配单词边界。

• B:匹配非单词边界。

7. 贪婪与非贪婪

默认情况下,正则表达式是贪婪的,即尽可能多地匹配字符。在量词后加上?可以使其变为非贪婪。

• *?:非贪婪匹配前一个字符0次或多次。

• +?:非贪婪匹配前一个字符1次或多次。

• ??:非贪婪匹配前一个字符0次或1次。

• {n}?:非贪婪匹配前一个字符n次。

• {n,}?:非贪婪匹配前一个字符至少n次。

• {n,m}?:非贪婪匹配前一个字符至少n次且不超过m次。

8. 分组与引用

使用小括号可以创建一个分组,分组内的内容被视为一个整体。

• (abc):匹配"abc"。

• (ab)+:匹配"ab"、"abab"等。

• (a|b):匹配"a"或"b"。

引用分组内的内容:

• 1:引用第一个分组的内容。

• 2:引用第二个分组的内容。

• ...

9. 断言

断言用于在匹配的位置添加条件。

• x(?=y):匹配x仅当x后面跟着y。

• x(?!y):匹配x仅当x后面不跟着y。

• (?<=y)x:匹配x仅当x前面跟着y。

• (?

10. 实例

10.1 匹配Email地址

var emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,6}$/;

10.2 匹配URL

var urlRegex = /^(https?|ftp):[^s/$.?#].[^s]*$/;

10.3 匹配日期(yyyy-mm-dd)

var dateRegex = /^d{4}-d{2}-d{2}$/;

11.

正则表达式是JavaScript中强大的文本匹配工具,它提供了丰富的语法和功能。本文介绍了正则表达式的基本语法、元字符、字符类、预定义字符类、量词、边界、贪婪与非贪婪、分组与引用、断言,并通过实例展示了如何使用正则表达式匹配常见的模式。熟练掌握正则表达式的语法,有助于提高字符串处理和模式匹配的效率。在使用正则表达式时,建议通过在线工具或正则表达式测试器验证表达式的正确性和匹配效果。


本文标签: 匹配 字符 任意 字符串 分组