winney

It is never too old to learn.

0%
winney

常用正则表达式

常用正则表达式大全_w3cschool

正则表达式在线测试

正则表达式示例

常用正则表达式

正则测试

正则表达式-思维导图

最全的常用正则表达式大全(校验数字,字符,号码等)

1
2
3
4
var reg = /^[\u4e00-\u9fffa-zA-Z]{1,15}$/;
if(!reg.test(value)) {
callback(new Error('请输入15个以内的字符'));
}

大于0的所有数,小数点后保留两位小数:

1
/^0\.([1-9]|\d[1-9])$|^[1-9]\d{0,8}\.\d{0,2}$|^[1-9]\d{0,8}$/

正整数(不包括0)

1
/^\+?[1-9][0-9]*$/

正整数(包括0)

1
/^\d+$/

大于0的整数—使用这个

1
/^[1-9]\d*$/      // 表示所有大于等于1的整数(整数第一位不为0,后面的随意)

用户名、密码等15个常用的js正则表达式

1
2
3
4
5
6
7
8
// 用户名正则,4到16位(字母,数字,下划线,减号)  
var uPattern = /^[a-zA-Z0-9_-]{4,16}$/;
//输出 true
console.log(uPattern.test("iFat3"));
if(!/^[A-Za-z0-9@*_-\u4E00-\u9FA5]{1,20}$/.test(params.name)) {
layer.msg('姓名请输入20位字符以内的中英文或数字或@*_-', {time: 1000});
return false;
}

正则表达式

date(日期格式不正确)

1
/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/

email(邮箱格式不正确)

1
/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/

identity(请输入正确的身份证号)

1
/(^\d{15}$)|(^\d{17}(x|X|\d)$)/

phone(请输入正确的手机号)

1
/^1\d{10}$/

required(必填项不能为空)

1
/[\S]+/

url(链接格式不正确)

1
/(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/

请输入数字/小数点

1

最多只能输入两位小数

1

判断是否为数字

1
isNaN(Number(money))

只能输入百分比正则(数字+%)

1

判断是否是非数字值

1
2
3
isNaN()

例如:isNaN(Number(money))

如果参数值为 NaN 或字符串、对象、undefined等非数字值则返回 true, 否则返回 false。

正浮点数正则表达式

1
2
3
/^(\d+)(\.\d+)?$/.test()

例如:/^(\d+)(\.\d+)?$/.test(money)

url正则表达式

1
2
3
/^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?$/

/^((ht|f)tps?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?$/

0-100的正整数

1
/^(?:0|[1-9][0-9]?|100)$/

数字/小大写字母/(30个字以内)

1
/^[A-Za-z0-9]{1,30}$/

只能输入汉字(30个字以内)

1
/^[\u4e00-\u9fa5]{1,30}$/

2-6位汉字

1
/^[\u4E00-\u9FA5]{2,6}$/

不能输入汉字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/^[^\u4e00-\u9fa5]{0,}$/
中文字符:[\u4e00-\u9fa5]
双字节字符:[^\x00-\xff]
空白行:\s
Email地址:\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}
网址URL:^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+
手机(国内):0?(13|14|15|17|18|19)[0-9]{9}
电话号码(国内):[0-9-()()]{7,18}
负浮点数:-([1-9]\d*.\d*|0.\d*[1-9]\d*)
匹配整数:-?[1-9]\d*
正浮点数:[1-9]\d*.\d*|0.\d*[1-9]\d*
腾讯QQ号:[1-9]([0-9]{5,11})
邮政编码:\d{6}
IP:(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)
身份证号:\d{17}[\d|x]|\d{15}
格式日期:\d{4}(\-|\/|.)\d{1,2}\1\d{1,2}
正整数:[1-9]\d*
负整数:-[1-9]\d*
用户名:[A-Za-z0-9_\-\u4e00-\u9fa5]+

JavaScript代码:

1
2
3
var pattern = /[\u4e00-\u9fa5]/,
str = '';
console.log(pattern.test(str));

用户名—3-12位字符(大小写字母或数字)

1
/^[A-Za-z0-9_]{3,12}$/

用户密码—6-16位

1
/^[A-Za-z0-9!@#$%^&*()<>,.?-_+=`~]{6,16}$/

昵称

1
/^[a-zA-Z\u4e00-\u9fa5]{1,10}$/

身份证

1
/^[1-9]\d{5}(19|20)\d{2}[01]\d[0123]\d\d{3}[xX\d]$/

身份证号码

1
/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/

匹配0到100之间的正整数的正则表达式

1
/^(?:0|[1-9][0-9]?|100)$/

匹配1到100之间的正整数的正则表达式

1
/^(?:1|[1-9][0-9]?|100)$/

QQ

1
/^[1-9]\d{4,10}$/

手机号

1
/^(13[0-9]|14[57]|15[0-9]|18[0-9])\d{8}$/

邮件

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

电话

1
/^0\d{2,3}-\d{7,8}$/

name/姓名/用户名

1
/^[\u4e00-\u9fa5]{2,}$/

密码强度

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
inp1.onkeyup = function () {
var level = 0;
if (/[a-z]/.test(this.value)) {
level++;
}
if (/[0-9]/.test(this.value)) {
level++;
}
if (/[^a-z0-9]/.test(this.value)) {
level++;
}
if (this.value.length < 6) {
level = 0;
}
if (level > 3) {
level = 3;
}
strength.innerHTML = array[level];
strengthLevel.className = 'strengthLv' + level;
};

regular.config.js

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
30
31
32
33
34
35
export const regExpConfig = {
IDcard: /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/, // 身份证
mobile: /^1([3|4|5|7|8|])\d{9}$/, // 手机号码
telephone: /^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/, // 固定电话
num: /^[0-9]*$/, // 数字
phoneNo: /(^1([3|4|5|7|8|])\d{9}$)|(^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$)/, // 电话或者手机
policeNo: /^[0-9A-Za-z]{4,10}$/, // 账号4-10位数字或字母组成
pwd: /^[0-9A-Za-z]{6,16}$/, // 密码由6-16位数字或者字母组成
isNumAlpha: /^[0-9A-Za-z]*$/, // 字母或数字
isAlpha: /^[a-zA-Z]*$/, // 是否字母
isNumAlphaCn: /^[0-9a-zA-Z\u4E00-\uFA29]*$/, // 是否数字或字母或汉字
isPostCode: /^[\d-]*$/i, // 是否邮编
isNumAlphaUline: /^[0-9a-zA-Z_]*$/, // 是否数字、字母或下划线
isNumAndThanZero: /^([1-9]\d*(\.\d+)?|0)$/, // 是否为整数且大于0/^[1-9]\d*(\.\d+)?$/
isNormalEncode: /^(\w||[\u4e00-\u9fa5]){0,}$/, // 是否为非特殊字符(包括数字字母下划线中文)
isTableName: /^[a-zA-Z][A-Za-z0-9#$_-]{0,29}$/, // 表名
isInt: /^-?\d+$/, // 整数
isTableOtherName: /^[\u4e00-\u9fa5]{0,20}$/, // 别名
// isText_30: /^(\W|\w{1,2}){0,15}$/, // 正则
// isText_20: /^(\W|\w{1,2}){0,10}$/, // 正则
isText_30: /^(\W|\w{1}){0,30}$/, // 匹配30个字符,字符可以使字母、数字、下划线、非字母,一个汉字算1个字符
isText_50: /^(\W|\w{1}){0,50}$/, // 匹配50个字符,字符可以使字母、数字、下划线、非字母,一个汉字算1个字符
isText_20: /^(\W|\w{1}){0,20}$/, // 匹配20个字符,字符可以使字母、数字、下划线、非字母,一个汉字算1个字符
isText_100: /^(\W|\w{1}){0,100}$/, // 匹配100个字符,字符可以使字母、数字、下划线、非字母,一个汉字算1个字符
isText_250: /^(\W|\w{1}){0,250}$/, // 匹配250个字符,字符可以使字母、数字、下划线、非字母,一个汉字算1个字符
isNotChina: /^[^\u4e00-\u9fa5]{0,}$/, // 不为中文 IDcard: /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/, // 身份证
IDcardAndAdmin: /^(([1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X))|(admin))$/, // 身份证或者是admin账号
IDcardTrim: /^\s*(([1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3})|([1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X))|(admin))\s*$/, // 身份证
num1: /^[1-9]*$/, // 数字
companyNO: /^qqb_[0-9a-zA-Z_]{1,}$/, // 公司人员账号
imgType: /image\/(png|jpg|jpeg|gif)$/, // 上传图片类型
isChina: /^[\u4e00-\u9fa5]{2,8}$/,
isNozeroNumber: /^\+?[1-9]\d*$/, // 大于零的正整数
float: /^\d+(\.?|(\.\d+)?)$/, // 匹配正整数或者小数 或者0.这个特殊值
}
  • split :切割字符串的方法,我们通常传递字符或者字符串来切割字符串,此时我们通常传递的参数是能看到的摸得着,是比较具体的,
  • search:用来寻找字符或者字符串在父字符串中的位置,我们可以传递字符,也可以传递字符串。
  • match:在父字符串中寻找匹配字符串
  • replace
  • regexp
  • exec:在字符串中寻找匹都字符串,该方法比其他正则方法或字符串方法支持的更复杂
  • test
  • char
  • special char
  • 集合
  • 边界
  • 手机号验证
  • 分组

0-10,支持一位小数,包括10.0

1
^(10(\.0)?|[0-9](\.[0-9])?)$

大于等于0小于等于100正数的正则表达式(0≤x≤100)

1
2
可以有小数:^100$|^(\d|[1-9]\d)(\.\d+)*$
不可以有小数:^100$|^(\d|[1-9]\d)$

20位字符以内的中英文或数字

1
/^[A-Za-z0-9_\x{4e00}-\x{9fa5}]+$/u

15位字符以内的大小写字母或数字

1
/^[A-Za-z0-9]{1,15}$/

6-18位至少包含数字、大小字母中的两种

1
/^(?![A-Z]+$)(?![a-z]+$)(?!\d+$)\S+$/