PageSourceSearch

https://52luobo.com/common/util/reg.js

js 52luobo.com collected 2026-10-09 01:57:36 UTC 5,238 bytes, 184 lines download raw bytes

1/**
2 * 邮箱格式正则验证
3 * @param email
4 * @returns {boolean}
5 */
6function emailReg(email) {
7    let reg = /^[\da-zA-Z]+([\-\.\_]?[\da-zA-Z]+)*@[\da-zA-Z]+([\-\.]?[\da-zA-Z]+)*(\.[a-zA-Z]{2,})+$/i;
8    return reg.test(email);
9}
10
11/**
12 * 手机号码格式正则验证
13 * @param phone
14 * @returns {boolean}
15 */
16function phoneReg(phone) {
17    let reg = /^1[3456789]\d{9}$/;
18    return reg.test(phone);
19}
20
21/**
22 * 用户名正则:最长10字符,支持中文、英文
23 * @param name
24 * @returns {boolean}
25 */
26function userNameReg(name) {
27    let reg = /^([\u4E00-\uFA29]|[\uE7C7-\uE7F3]|[a-zA-Z]){1,10}$/;
28    return reg.test(name);
29}
30
31/**
32 * 密码正则:8-16字符,支持字母、数字以及特殊符号
33 * @param password
34 * @returns {boolean}
35 */
36function userPasswordReg(password) {
37    // let reg = /^(\w){8,16}$/;
38    // let reg =  /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/]).{8,16}$/;
39    let reg = /^[A-Za-z0-9~!@#$%^&*()_+`\-={}:";'<>?,.\/]{8,16}$/;
40    return reg.test(password);
41}
42
43/**
44 * 域名正则
45 * @param domain
46 * @returns {boolean}
47 */
48function domainReg(domain) {
49    // let reg = /^(?=^.{3,255}$)(http(s)?:\/\/)?(www\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})$/;
50    // let reg = /^(?:[-A-Za-z0-9]+\.)+[A-Za-z]{2,}$/;
51    // const reg = /^(?:[-A-Za-z0-9\u4E00-\u9FFF]+\.)+[A-Za-z\u4E00-\u9FFF]{2,}$/;
52    // return reg.test(domain);
53    return true;
54}
55
56function hasScheme(domain) {
57    const reg = /^https?:\/\/.+/;
58    return reg.test(domain);
59}
60
61/**
62 * IP地址正则
63 * @param ip
64 * @returns {boolean}
65 */
66function ipReg(ip) {
67    let reg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
68    return reg.test(ip);
69}
70
71/**
72 * 金额正则
73 * @param number
74 * @returns {boolean}
75 */
76function numberReg(number) {
77    let reg = /^(\d|([1-9]\d+))(\.\d{1,2})?$/;
78    return reg.test(number);
79}
80
81/**
82 * 身份证正则 支持1代2代
83 * @param idCard
84 * @returns {boolean}
85 */
86function idCardReg(idCard) {
87    let reg = /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/;
88    return reg.test(idCard);
89}
90
91/** 端口正则验证*/
92function portReg(port) {
93    if (/^[1-9]\d*|0$/.test(port) && port * 1 >= 0 && port * 1 <= 65535) {
94        return true
95    }
96    return false;
97}
98
99/** url正则验证*/
100function urlReg(url) {
101    let reg = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/;
102    return !!reg.test(url);
103}
104
105/** QQ号正则验证*/
106function qqReg(qq) {
107    let reg = /^[1-9][0-9]{4,9}$/gim;
108    return reg.test(qq);
109}
110
111/** 正整数正则*/
112function integerReg(positiveInteger) {
113    let reg = /^\d+$/;
114    return reg.test(positiveInteger);
115}
116
117/** 图片格式正则*/
118function verifySuffix(fileName) {
119    let suffix = `(bmp|jpg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp|jpeg)`
120    let regular = new RegExp(`.*\.${suffix}`)
121    return regular.test(fileName)
122}
123
124/** 含有http或者https的正则*/
125function verifyUrlPrefix(url) {
126    let reg = /^(http|https):\/\/[^\s]+$/i;
127    return reg.test(url)
128}
129
130/** 含有http或者https的正则*/
131function verifyUrlPrefixWithEnd(url) {
132    let reg = /^(https?:\/\/).*\/$/;
133    return reg.test(url)
134}
135
136/** 正则验证是否是不小于1的小数,小数位数不超过2*/
137function validatePositiveDecimal(input) {
138    let regex = /^(?!0$|0\.0{0,2}$|1$|1\.0{0,2}$)[0-9](\.[0-9]{1,2})?$/;
139    return regex.test(input);
140}
141
142/**域名配置的一些正则*/
143function certNameReg(certName) {
144    let regex = /^[a-zA-Z0-9_-]{3,64}$/;
145    return regex.test(certName);
146}
147
148function dirpathReg(dirpath) {
149    const regex = /^(\/[^\/]+)+$|^(\/[^\/]+)+\/$/;
150    return regex.test(dirpath);
151}
152
153function fileSuffixReg(fileSubffix) {
154    let regex = /^\.?[a-zA-Z0-9_]+([,;,;]\.?[a-zA-Z0-9_]+)*$/;
155    return regex.test(fileSubffix);
156}
157
158function fullDirPathRef(fullDirPath) {
159    let regex = /^(?:\/[^\/]+)*\/\w+(?:\.\w+)?$/;
160    return regex.test(fullDirPath);
161}
162
163//匹配186.33.22.1 blog.kedaya.site *.kedaya.site这三种
164function antiLeechLinkReg(antiLeechLink) {
165    let regex = /^(?:\*\.)?(?:[a-zA-Z0-9_-]+\.){1,}[a-zA-Z]{2,}$|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
166    return regex.test(antiLeechLink);
167}
168
169//以下是一个可以匹配IPv4和IPv6地址以及CIDR块的JavaScript正则表达式:
170function ipBlackWhiteReg(ipBlackWhite) {
171    let regex = /\b(?:\d{1,3}\.){3}\d{1,3}(?:\/\d{1,2})?|[a-fA-F\d:]+:+[a-fA-F\d:]+\b/;
172    return regex.test(ipBlackWhite);
173}
174
175
176function uaHuaWeiReg(ua) {
177    let regex = /^[0-9a-zA-Z*.\-_();,\/\s]+$/g;
178    return regex.test(ua);
179}
180
181function uaVolReg(ua) {
182    let regex = /^(?![\u4e00-\u9fa5])(?! *$)(?!\*$)(?:\*?(?:[A-Za-z0-9])+\*?)$/;
183    return regex.test(ua);
184}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.