正则匹配中文字节

1
2
3
4
// 使用正则匹配中文字节, 将其替换为xx, 再获取字符串的长度就是完整的长度了.
function getLen(str) {
return str.replace(/[^\x00-\xff]/g, 'xx').length;
}

邮箱

1
2
// 匹配是否符合邮件规则
var reg = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;

常见表单验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 用户名正则,4到16位(字母,数字,下划线,减号)
var userNameReg = /^[a-zA-Z0-9_-]{4,16}$/;
// 必须拥有数字和特殊字符,并且在6 ~ 16位之间
// (?=.*[0-9]) - 断言一个字符串至少有一个数字;
// (?=.*[!@#$%^&*]) - 断言一个字符串至少有一个特殊字符。
var reg = /^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,16}$/;
// 匹配邮箱地址
var mailReg = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
// 中国六位数的邮政编码
var postalCode = /^\d{6}$/;
// 匹配15~18位身份证
var IDCard = /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/;
// 匹配18位的新版身份证
var IDCard_18 = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
// 校验输入框是字符数为是否为 4~16 位(英文长度为1, 汉字长度为2)
var numName = /^[a-zA-Z0-9]{4,16}$/;
var mate = numName.test(value.replace(/[\u4e00-\u9fa5]/g, 'aa'));

联系方式

1
2
3
4
5
6
7
8
9
10
11
// 5-11位的腾讯qq号
var qqReg = /^[1-9][0-9]{4,11}$/;
// 微信号正则,6至20位,以字母开头,字母,数字,减号,下划线
var qqReg = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;
// 国内常见
var phone = /^1[3|5|8|9]\d{9}$/;
// 固定电话
var telephone = /^(0[0-9]{2})\d{8}$|^(0[0-9]{3}(\d{7,8}))$/;

匹配特定数字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// 匹配正整数
var reg = /^[1-9]\d*$/;
// 匹配负整数
var reg = /^-[1-9]\d*$/;
// 匹配整数
var reg = /^-?[1-9]\d*$/;
// 匹配非负整数(正整数 + 0)
var reg = /^[1-9]\d*|0$/;
// 匹配非正整数(负整数 + 0)
var reg = /^-[1-9]\d*|0$/;
// 匹配正浮点数
var reg = /^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$/;
// 匹配负浮点数
var reg = /^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$/;
// 匹配浮点数
var reg = /^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$/;
// 匹配非负浮点数(正浮点数 + 0)
var reg = /^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$/;
// 匹配非正浮点数(负浮点数 + 0)
var reg = /^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$/;

字符串相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 匹配由26个英文字母组成的字符串
var reg = /^[A-Za-z]+$/;
// 匹配由26个英文字母的大写组成的字符串
var reg = /^[A-Z]+$/;
// 匹配由26个英文字母的小写组成的字符串
var reg = /^[a-z]+$/;
// 匹配由数字和26个英文字母组成的字符串
var reg = /^[A-Za-z0-9]+$/;
// 匹配由数字、26个英文字母或者下;划线组成的字符串
var reg = /^\w+$/;
// 匹配空白行的正则表达式
var reg = /\n\s*\r/;
// 匹配首尾空白字符的正则表达式
var reg = /^\s*|\s*$/;
var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
// 匹配双字节字符(包括汉字在内, 一个双字节字符长度计2,ASCII字符计1)
var reg = /[^\x00-\xff]/g;