Skip to main content

正则

正则表达式判断手机号,qq,颜色,邮箱(test api)

reg.test(str)*****

// 手机号
let reg1 = /^1[3456789]\d{9}$/g;
let str1 = '15928229999'
console.log(reg1.test(str1));
// qq号
let reg2 = /^[1-9][0-9]{4,9}$/g;
let str2 = '159222'
console.log(reg2.test(str2));

// 颜色,两种情况
let reg3 = /^#?([0-9a-fA-F]{6}|[0-9a-fA-F]{3}$)/g;
let str3 = '#abc'
console.log(reg3.test(str3));
// 邮箱
let reg4 = /^([A-za-z0-9_\-\.]+)+@([A-za-z0-9_\-\.]+)\.([A-Za-z]{2, 6})$/g;//+一到多
var reg = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
let str4 = 'a11bc@didi.com'
console.log(reg4.test(str4));



正则 判断 url

const _isUrl = (url) => {
return /^((http|https):\/\/)?(([A-Za-z0-9]+-[A-Za-z0-9]+|[A-Za-z0-9]+)\.)+([A-Za-z]+)(:\d+)?(\/.*)?(\?.*)?(#.*)?$/.test(
url
);
};

.*代表任意字符串

https://www-aa.baidu123.com:1299/search?abc=123#abck 协议为 http(s) (?表示括号内的出现 0 或 1 次) 0.先写^$ 首先必须是以 http(s)开头并且可以不包含协议头部信息*,所以加问号 http 或 https 开头加:加两个转义过后的// 主机名可以使用"-"符号,所以两种情况都要判断,包含"-"或不包含"-" +表示前面的出现一次或多次 (([A-Za-z0-9]+-[A-Za-z0-9]+ | [A-Za-z0-9]+).)+ abc13-abc12 或 abc123 此处整个要用括号包起来并+,等于(abc123.)+ 顶级域名很多,直接判断"."之后是否为字母即可(com 之类的,只包含字母) ([A-Za-z]+) .abc 最后判断端口、路径和哈希,这些参数可有可无 .*表示任意 (: \d+)? :8000 (/ .)? 转义/ /abcdefg (? .)? 转义? ?abcdefg (# .*)? #不用转义 #abcdefg