一、仅匹配数字字符串
正则表达式:/^\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