小程序中校验中文字输入,附小程序常用正则表达式

同事小刚:小程序里怎么判断只能输入中文字符啊?

:淦!小程序里不知道中文字符怎么判断,js总知道了吧…

同事小刚:正则!是正则吗,小程序里也可以用吗?

:当然了,哈哈,亏你每个月能拿上万工资呢~


先解决小刚的问题(其他两个附赠的):

const chinese = /[^\u4E00-\u9FA5]/g

const number = /[^\d]/g;

const englishAndNum =/[\W]/g

if ((chinese.test(this.data.username))) {
    wx.showToast({ title: "只允许输入中文", icon: "none" });
    return false;
}

if ((number.test(this.data.username))) {
    wx.showToast({ title: "只允许输入数字", icon: "none" });
    return false;
}

if ((englishAndNum.test(this.data.username))) {
    wx.showToast({ title: "只允许输入英文加数字", icon: "none" });
    return false;
}

如下是常用的正则,摘录自 码农小白077 https://blog.csdn.net/wa172126691/article/details/82991476

手机号:

if (!(/^1[345768]\d{9}$/.test(e.detail.value.phone))) { 
    wx.showToast({ title: '手机号码有误', duration: 2000, icon:'none' }); 
    return false
}

邮箱:

if (!(/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/.test(e.detail.value.Emlia))){ 
    wx.showToast({ title: '邮箱输入有误', duration: 2000, icon: 'none' }); 
    return false
}

中英文名称:

if (!(/^[\u4E00-\u9FA5A-Za-z]+$/.test(e.detail.value.name))) { 
    wx.showToast({ title: '姓名有误', duration: 2000, icon: true }); 
    return false
}

身份证:

if (!(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(e.detail.value.sfz))) { 
    wx.showToast({ title: '身份证号码有误', duration: 2000, icon: 'none' }); 
    return false
}

验证数字的正则表达式集 :

验证数字:^[0-9]*$ 

验证n位的数字:^\d{n}$ 

验证至少n位数字:^\d{n,}$ 

验证m-n位的数字:^\d{m,n}$ 

验证零和非零开头的数字:^(0|[1-9][0-9]*)$ 

验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 

验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 

验证非零的正整数:^\+?[1-9][0-9]*$ 

验证非零的负整数:^\-[1-9][0-9]*$ 

验证非负整数(正整数 + 0) ^\d+$ 

验证非正整数(负整数 + 0) ^((-\d+)|(0+))$ 

验证长度为3的字符:^.{3}$ 

验证由26个英文字母组成的字符串:^[A-Za-z]+$ 

验证由26个大写英文字母组成的字符串:^[A-Z]+$ 

验证由26个小写英文字母组成的字符串:^[a-z]+$ 

验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$ 

验证由数字、26个英文字母或者下划线组成的字符串:^\w+$ 

验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。 

验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+ 

验证汉字:^[\u4e00-\u9fa5],{0,}$ 

验证Email地址:/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/

验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$ 

验证电话号码:^(\d3,4\d3,4\d{3,4}|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。

验证身份证号(15位或18位数字):^\d{15}|\d{}18$ 

验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12” 

验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。

整数:^-?\d+$ 

非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$ 

正浮点数 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ 

非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 

负浮点数 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ 

浮点数 ^(-?\d+)(\.\d+)?$
posted @ 2020-08-19 00:08  niceyoo  阅读(3933)  评论(0编辑  收藏  举报