0%

常用正则表达式记录

  1. 邮箱格式验证
  2. 分解url

邮箱格式验证

1
/^[\w.-]*@[\w.-]*\.[\w]*$/

核心在于验证@.,接着就是使用^$规定了开头结尾,使用\w匹配数字、字母、下划线(相等于[A-Za-z0-9])。

1
2
3
/^[\w.-]*@[\w.-]*\.[\w]*$/.test('123@123.com')  // true
/^[\w.-]*@[\w.-]*\.[\w]*$/.test('a.b.c@a.b.c.com') // true
/^[\w.-]*@[\w.-]*\.[\w]*$/.test('123-abc@123-abc.abc.com') // true

分解url

区分出协议、域名、端口、相对路由:

1
/^(https?):\/\/([a-zA-Z0-9.-]*):?([0-9]*)([^]*)/
1
2
'https://a-a.b.c:123/123/123'.match(/^(https?):\/\/([a-zA-Z0-9.-]*):?([0-9]*)([^]*)/)
// ['https://a-a.b.c:123/123/123', 'https', 'a-a.b.c', '123', '/123/123', index: 0, input: 'https://a-a.b.c:123/123/123', groups: undefined]

区分出参数:

1
/^(https?):\/\/([a-zA-Z0-9.-]*):?([0-9]*)([^\?]*)\??([^]*)/
1
2
'https://a-a.b.c:123/123/123?a=b&b=c'.match(/^(https?):\/\/([a-zA-Z0-9.-]*):?([0-9]*)([^\?]*)\??([^]*)/)
// ['https://a-a.b.c:123/123/123?a=b&b=c', 'https', 'a-a.b.c', '123', '/123/123', 'a=b&b=c', index: 0, input: 'https://a-a.b.c:123/123/123?a=b&b=c', groups: undefined]