正则表达式是一种强大的处理字符串的工具,它可以用来匹配、搜索和替换文本。在前端开发中,正则表达式常用于表单验证、数据提取等场景。本文将介绍 JavaScript 中一些常用的正则表达式及其使用方法。
基础语法
JavaScript 中的正则表达式用 /
包裹起来,例如:
var regex = /hello/;
以上代码表示创建了一个正则表达式,用于匹配字符串中包含 "hello" 的位置。
正则表达式由多个字符组成,其中一些字符有特殊的含义。例如,/d
表示匹配任意数字字符。下面是一些常用的元字符:
.
匹配任何单个字符,除了换行符和其他 Unicode 行终止符。\d
匹配任何数字字符。相当于[0-9]
。\w
匹配任何字母数字字符。相当于[A-Za-z0-9_]
。\s
匹配任何空格字符,包括空格、制表符、换页符等。^
匹配字符串的开头。$
匹配字符串的结尾。*
匹配前面的模式零次或多次。+
匹配前面的模式一次或多次。?
匹配前面的模式零次或一次。{n}
匹配前面的模式恰好 n 次。{n,}
匹配前面的模式至少 n 次。{n,m}
匹配前面的模式至少 n 次,但不超过 m 次。
常用正则表达式
匹配邮箱地址
邮箱地址的格式为 username@domain.com
,其中 username 和 domain 都是由字母、数字和特殊字符组成的。我们可以使用以下正则表达式进行匹配:
var regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
解释一下上述代码:
^
匹配字符串的开头。[a-zA-Z0-9._%+-]+
匹配一个或多个字母、数字、点号、下划线、百分号、加号或减号。@
匹配 @ 符号。[a-zA-Z0-9.-]+
匹配一个或多个字母、数字、点号或减号。\.
匹配点号。[a-zA-Z]{2,}
匹配两个或以上字母。
最后,$
匹配字符串的结尾。
匹配身份证号码
身份证号码是 18 位或 15 位数字,最后一位可能是 X 或 x(表示 10)。我们可以使用以下正则表达式进行匹配:
var regex = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
解释一下上述代码:
(^\d{15}$)
匹配 15 位数字。(^\d{18}$)
匹配 18 位数字。(^\d{17}(\d|X|x)$)
匹配 17 位数字加上最后一位是数字或 X 或 x。
匹配 URL
URL(统一资源定位符)是用于定位互联网上资源的字符串。一个标准的 URL 格式为:
protocol://hostname:port/pathname?search#hash
其中,protocol 表示协议,例如 http、https 等;hostname 表示主机名或 IP 地址;port 表示端口号;pathname 表示路径;search
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/9749