匹配邮箱:
{username@hostname.com|edu|info)
1 | /^[A-Za-z0-9]+([-.][A-Za-z0-9]+)*@[A-Za-z0-9]+(\.[A-Za-z0-9]+)*\.[A-Za-z]{2,6}$/ |
用户名可以包含点号和连字符,但是用户名以字符开头因此用/\w+[-.\w+]*,但是\w会匹配ASCII字母和数字,但有些系统中\w能够匹配非ASCII字母,,因此将\w换成[-A-Za-z0-9],结尾的域名一般在2-6个字符
匹配URL
比如匹配http或者https开头的url
1 | /^((http|https)):\/\/)?[-A-Za-z0-9]+(\.[A-Za-z0-9]+)*\.[A-Za-z]{2,6}[a-zA-Z0-9_:\@&?=+,.!~%*\$]*(?<![.,?!])$/ |
主机名仍然为[A-Za-z0-9]+(.[A-Za-z0-9]+)*.[A-Za-z]{2,6},路径名[a-zA-Z0-9_:@&?=+,.!~%*$]*可有可无,结尾不能是./?!这些符号
或者
根据题目要求判断参数URL是否合法。首先URL结构一般包括协议、主机名、主机端口、路径、请求信息、哈希,而本题协议已给出为HTTP(S),使用正则匹配URL,核心步骤有:
- 首先必须是以http(s)开头并且可以不包含协议头部信息
- 主机名可以使用”-“符号,所以两种情况都要判断,包含”-“或不包含”-“
- 顶级域名很多,直接判断”.”之后是否为字母即可
- 最后判断端口、路径和哈希,这些参数可有可无
参考答案:
1 | const _isUrl = url => { |
匹配手机号
手机号一般是1开头,第二位只能是3-9,最多9个数字
1 | /^1[3-9]\d{9}$} |