跳至正文

12 个最常用的正则表达式

一、仅匹配数字字符串

正则表达式:/^\d+$/

用法:

let regex = /^\d+$/
// undefined
regex.test('123456')
// true
regex.test('2342')
// true
regex.test('123,456')
// false
regex.test('id3456')
// false

二、十进制数

正则表达式:/^\d+(\.?\d+)?$/

  • \.匹配单个 char 。
  • ? 表示可选。
  • () 表示一个组
  • (\.?\d)? 是一个可选组

用法:

var regex = /^\d+(\.?\d+)?$/
// undefined
regex.test('0')
// true
regex.test('.1')
// false
regex.test('3.14')
// true
regex.test('123456')
// true
regex.test(12.')
// false

. 应该在数字中间,所以 .1 和 12.返回 false。

三、字母数字字符

正则表达式:/^[a-zA-Z0-9]+$/

[a-zA-Z0–9] 匹配所有字母和数字

用法:

var regex = /^[a-zA-Z0-9]+$/
// undefined
regex.test('byte')
// true
regex.test('2022')
// true
regex.test('me2022')
// true
regex.test('hello world')
// false
regex.test('bye, bye')
// false
regex.test('')
// false

四、allow space字符串中留出空格

正则表达式:/^[a-zA-Z0-9\s]+$/

用法:

var regex = /^[a-zA-Z0-9\s]+$/
// undefined
regex.test('hello world')
// true
regex.test('rock lee')
// true

五、电子邮件

正则表达式:^\w+([-+.’]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

用法:

var regex = ^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
// undefined
regex.test('byte@gmail.com')
// true
regex.test('byte@123gmail.com')
// true

正则表达式:^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$

  • 简单的电子邮件表达。不允许在域名中使用数字,并且不允许使用少于 2 个或多于 3 个字母的顶级域(在它们允许更多之前都可以)。

六、密码

正则表达式:^[a-zA-Z]\w{8,20}$

用法:

var regex = ^[a-zA-Z]\w{8,20}$
// undefined
regex.test('q123')
// true
regex.test('qq23')
// false
regex.test('1tses1')
// false

正则表达式:/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/

  • 至少 8 个字符
  • 至少 1 个数字字符
  • 至少 1 个小写字母
  • 至少 1 个大写字母
  • 至少 1 个特殊字符

七、用户名

正则表达式:/^[a-zA-Z0-9_-]{3,16}$/

用法:

var regex = /^[a-zA-Z0-9_-]{3,16}$/
// undefined
regex.test('j_s-2022')
// true
regex.test('Jon Snow')
// false

八、网址

正则表达式:/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#()?&//=]*)/

用法:

var regex = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#()?&//=]*)/
regex.test('https://www.baidu.com')
// true

九、IP地址

正则表达式:IPv4 /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$

用法:

var regex =  /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
regex.test(127.0.0.1)
regex.test(192.168.1.1)
// true
regex.test(1.1.1.01)
// true
regex.test(3.3)
// false

正则表达式:IPv6 (([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))

十、日期

正则表达式: /([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/

用法:

var regex =  /([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/
// undefined
regex.test('2022-02-08')
// true
regex.test('2022-02-30')
// false

十一、HTML标签

正则表达式:/<\/?[\w\s]*>|<.+[\W]>/

用法:

var regex = /<\/?[\w\s]*>|<.+[\W]>/
regex.test('<html>')
// true
regex.test('<div class="app">')
// true
regex.test('</div>')
// true

十二、电话号码

正则表达式:^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$

用法:

var regex = ^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$
regex.test(''123-456-7890)
// true

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注