实用的 JavaScript 正则表达式
XPoet 自由程序猿

此文收录在日常开发及各种业务场景下常用的正则表达式,持续更新…

正则表达式

正则表达式(英语:Regular Expression,在代码中常简写为 regexregexpRE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。

正则表达式是一种强大的文本匹配和处理工具,它在处理字符串、表单验证、文本搜索等场景中都发挥着重要的作用。

语法

1
/正则表达式主体/修饰符(可选)
1
2
3
4
5
6
7
eg:
const RE = /xpoet/i;

解析:
/xpoet/i 是一个正则表达式
xpoet 是一个正则表达式主体 (用于检索)
i 是一个修饰符 (搜索不区分大小写)

常用的匹配规则

验证数字

验证整数或带小数点的数字

1
2
3
4
5
6
const regex = /^-?\d+(\.\d+)?$/

console.log(regex.test(1)) // true
console.log(regex.test(-1)) // true
console.log(regex.test(1.1)) // true
console.log(regex.test('1a')) // false

验证邮箱

验证字符串是否符合邮箱格式

1
2
3
4
const regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/

console.log(regex.test('example@email.com')) // true
console.log(regex.test('example#email.com')) // false

验证汉字

验证字符串是否只包含汉字。[\u4e00-\u9fa5] 匹配汉字的 Unicode 范围。

1
2
3
4
5
const regex = /^[\u4e00-\u9fa5]+$/

console.log(regex.test('中文')) // true
console.log(regex.test('Chinese')) // false
console.log(regex.test('123')) // false

验证英文

验证字符串是否只包含英文。

1
2
3
4
5
const regex = /^[a-zA-Z]+$/

console.log(regex.test('中文')) // false
console.log(regex.test('Chinese')) // true
console.log(regex.test('123')) // false

验证网址

1
2
3
4
const regex = /^(https?:\/\/)?([a-zA-Z0-9-]+\.){1,}([a-zA-Z]{2,})(\/[^\s]*)?$/

console.log(regex.test('https://www.example.com')) // true
console.log(regex.test('https://example')) // false

验证手机号

1
2
3
4
const regex = /^1[3456789]\d{9}$/

console.log(regex.test(13000000000)) // true
console.log(regex.test(12000000000)) // false

验证身份证号码

验证身份证号码的格式,支持 15 位和 18 位身份证号码。

1
2
3
4
const regex = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/

console.log(regex.test('440101200001011000')) // true
console.log(regex.test('4400000000')) // false

验证图片格式

1
2
3
4
5
const regex = /(png|jpg|jpeg|gif|webp|awebp|bmp|avif|svg\+xml|svg|x-icon)$/i

console.log(regex.test('image.jpg')) // true
console.log(regex.test('image.png')) // true
console.log(regex.test('image.png1')) // false
 Comments
Comment plugin failed to load
Loading comment plugin