JS常用正则表达式总结【经典】


Posted in Javascript onMay 12, 2017

本文实例讲述了JS常用正则表达式。分享给大家供大家参考,具体如下:

在项目中个人写的一个常用验证的正则表达式:(仅供参考)

//定义两个全局变量
var reg;
var errorInfo;
//输入的数字类型必须是int型,正负整数都可以
function validate_integer(text,value){
reg=/^[-\+]?\d+$/;
errorInfo=text+" "+value+" 只能是整数,请核实重新输入!";
verifyByReg(value,reg,errorInfo);
}
//输入的数字类型必须是double型,保留的小数位数只能是2位,可以为正负
function validate_double(text,value){
reg=/^[-\+]?([1-9](\d+)?|0)(\.\d{2})$/;
errorInfo=text+" "+value+" 只能保留2为小数,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//输入的必须是全是数字类型型,不能出现其他字符
function validate_number(text,value){
reg=/^\d+$/;
errorInfo=text+" "+value+" 只能是数字,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//验证输入n位的数值类型
function validate_number_n(text,value,n){
reg=eval("/^\\d{"+n+"}$/");
errorInfo=text+" "+value+" 只能是"+n+"位数字,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//验证有两位小数的正实数
function validate_decimal_two(text,value){
reg=/^([1-9](\d+)?|0)(.[0-9]{2})?$/;
errorInfo=text+" "+value+" 只能是保留2位小数的正数,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//验证非零的正整数
function validate_number_positive(text,value){
reg=/^\+?[1-9][0-9]*$/;
errorInfo=text+" "+value+" 只能是非0的正整数,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//验证非零的负整数
function validate_number_negative(text,value){
reg=/^[-][1-9][0-9]*$/;
errorInfo=text+" "+value+" 只能是非0的负整数,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//验证非负整数,可以为0
function validate_positive_haszero(text,value){
reg=/^[1-9](\d+)?|0$/;
errorInfo=text+" "+value+" 只能是是0或正整数,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//验证非正整数,可以为0
function validate_negative_haszero(text,value){
reg=/^\-[1-9](\d+)?|0$/;
errorInfo=text+" "+value+" 只能是是0或负整数,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//验证非负浮点数(正浮点数 + 0)
function validate_float_notnegative(text,value){
reg=/^([1-9](\d+)?|0)(\.\d+)|0$/;
errorInfo=text+" "+value+" 只能是是0或正浮点数,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//验证正浮点数
function validate_float_positive(text,value){
reg=/^([1-9](\d+)?|0)(\.\d+)$/;
errorInfo=text+" "+value+" 只能是正浮点数,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//非正浮点数(负浮点数 + 0)
function validate_float_notpositive(text,value){
reg=/^\-([1-9](\d+)?|0)(\.\d+)|0$/;
errorInfo=text+" "+value+" 只能是是0或者负浮点数,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//验证负浮点数
function validate_float_negative(text,value){
reg=/^\-([1-9](\d+)?|0)(\.\d+)$/;
errorInfo=text+" "+value+" 只能是负浮点数,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//验证正浮点数多少位小数
function validate_float_posbit(text,value,n){
reg=eval("/^(\\d+)(\\.\\d{"+n+"})$/");
errorInfo=text+" "+value+" 只能是"+n+"位正浮点数,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//验证负浮点数多少位小数
function validate_float_negbit(text,value,n){
reg=eval("/^(-?\\d+)(\\.\\d{"+n+"})$/");
errorInfo=text+" "+value+" 只能是"+n+"位负浮点数,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//校验文本是否为空
function checknull(text,value){
if(value=="" || typeof(value)=='undefined'){
errorInfo=text+" "+value+" 不能为空,请重新输入!";
returnInfo(errorInfo);
}
}
//验证由26个英文字母组成的字符串
function validate_string_letter(text,value){
reg=/^[A-Za-z]+$/;
errorInfo=text+" "+value+" 只能是26位不区分大小写的英文字母组成,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//验证由26个英文字母的大写组成的字符串
function validate_string_bigletter(text,value){
reg=/^[A-Z]+$/;
errorInfo=text+" "+value+" 只能是26位大写的英文字母组成,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//验证由26个英文字母的小写组成的字符串
function validate_string_smallletter(text,value){
reg=/^[a-z]+$/;
errorInfo=text+" "+value+" 只能是26位小写的英文字母组成,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//验证由数字和26个英文字母组成的字符串
function validate_string_number(text,value){
reg=/^[A-Za-z0-9]+$/;
errorInfo=text+" "+value+" 只能是数字和26个英文字母组成,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//验证由数字、26个英文字母或者下划线组成的字符串
function validate_string_numberandunderline(text,value){
reg=/^\w+$/;
errorInfo=text+" "+value+" 只能是数字、26个英文字母或者下划线组成,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//验证邮箱
function validate_email(value){
reg=/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
errorInfo='邮箱 '+value+" 无效,请重新输入";
verifyByReg(value,reg,errorInfo);
}
//验证时如果选择默认调用此方法 金额类型,可以是正整数或保留4位有效数字的正整数
/**有问题
function validate_money_default(text,value){
var reg=/^\d+(\.\d{4})?$/;
var errorInfo=text+" "+value+" 只能是正整数或保留4位有效数字,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
**/
//验证输入的只能是中文
function validate_chinese(text,value){
reg=/^[\u4e00-\u9fa5]+$/;
errorInfo=text+" "+value+" 只能是中文字符,请重新输入";
verifyByReg(value,reg,errorInfo);
}
//验证输入的只能是n位的中文
function validate_bitchinese(text,value,bit){
reg=eval("/^[\\u4e00-\\u9fa5]{"+bit+"}$/");alert(reg);
errorInfo=text+" "+value+" 只能是"+bit+"位中文字符,请重新输入";
verifyByReg(value,reg,errorInfo);
}
//跟最大的值比较,此方法是看数字是否超出系统的上限
function thanMax(text,number,max){
if(number>max){
errorInfo=text+" "+number+" 不能大于"+max+",请重新输入";
returnInfo(errorInfo);
}
}
//跟最小的值比较,此方法是看数字是否低于系统的下限
function thinMin(text,number,min){
if(number<min){
errorInfo=text +" "+number+" 不能小于"+min+",请重新输入";
returnInfo(errorInfo);
}
}
//输入文本的字符串是否在系统的指定长度内
function isLimit(text,value,length){
var arr=value.split("");
if(arr.length>length){
errorInfo=text +" "+value+" 字符过长,请输入最多"+length+"位字符";
returnInfo(errorInfo);
}
}
//邮政编码的验证
function validate_zipcode(value){
reg=/[1-9]\d{5}(?!\d)/;
errorInfo='邮政编码 '+value+" 有误,请核实重新输入";
verifyByReg(value,reg,errorInfo);
}
//对数值类型的数据进行简单的验证和转换,因为在设置的时候没有传入这个参数的话就会出现js代码错误,所以应该对数值型的数据进行转换
//非空字符的判定
function getZeroByNull(text,value){
errorInfo=text+" "+value+" 不能为空,请核实重新输入";
if(value==null||value==''||value=='undefined'){
returnInfo(errorInfo);
}
}
//身份证验证,分为了两种,15位和18位
function validate_IdCard(value){
var size=value.split("");
if(size.length==15){
reg=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;//15位身份证验证
errorInfo='位身份证号码 '+value+" 有误,请核实重新输入";
}else if(size.length==18){
reg=/^[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|x)$/;//18位身份证验证
errorInfo='位身份证号码 '+value+" 有误,请核实重新输入";
}else{
errorInfo="请输入合法的身份证号码!";
returnInfo(errorInfo);
}
verifyByReg(value,reg,errorInfo);
}
//每个验证都需要调用此方法
function verifyByReg(value,reg,errorInfo){
if(value!=''&®!=''){
var regExp = new RegExp(reg);
if(!regExp.test(value)){
alert(errorInfo);
throw errorInfo;
}
}
}
//不进过正则表达式验证,只需要返回信息,适合内部调用此方法
function returnInfo(message){
alert(message);
throw message;
}
//许可证号 生产企业的格式:QS 1234 2346 3456 其中空格可有可无
///经营企业许可证的格式为: 湘010249 但是中国的省会简称可能会有三个字的,所以中文可以定义为1-3个
function validate_license(value,type){
if(type==1){
reg=/^[a-zA-Z]{2}[ ]?(\d{4}[ ]?\d{4}[ ]?\d{4})$/;//生产企业许可证号
errorInfo="生产许可证号 "+value+" 有误,请核实重新输入!";
}else if(type==2){
reg=/^[\u4e00-\u9fa5]{1,3}\d{6}$/;
errorInfo="经营许可证号 "+value+" 有误,请核实重新输入!";
}
verifyByReg(value,reg,errorInfo);
}
//传真 可以匹配的字符串如:+123 -999 999 ; +123-999 999 ;123 999 999 ;+123 999999等
function validate_fax(value){
reg=/^([+]{0,1})?\d{1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
errorInfo="传真 "+value+" 有误,请重新输入!";
verifyByReg(value,reg,errorInfo);
}
//电话号码可以输入:电话或者手机 其中手机号码可以是(+86)、(86)+号码,也可以是号码 电话的号码可以是区号+号码 区号-号码 号码
function validate_tel(value){
reg=/(^(0\d{2,3}([-|+])?)?\d{7}$)|(^(\d{3,4}([-|+])?)?\d{7,8}$)|(^([+]?(86)?[+]?)1[3-9]\d{9}$)/;
errorInfo='电话号码 '+value+" 有误,请核实重新输入!";
verifyByReg(value,reg,errorInfo);
}
//日:大于0小于等于31的正整数
function validate_day(value){
reg=/(^[0]?[1-9]$)|(^[1-2]\d$)|(^[3][0-1]$)/;
errorInfo='日期 '+value+" 有误,请核实重新输入!";
verifyByReg(value,reg,errorInfo);
}
//月:合法月份
function validate_month(value){
reg=/(^[0]?[1-9]$)|(^[1][0-2]$)/;
errorInfo='月份 '+value+" 有误,请核实重新输入!";
verifyByReg(value,reg,errorInfo);
}
//年:合法年份 在这里合法的年份为公元1000年至公元2999年
function validate_year(value){
reg=/^[1-2]\d{3}$/;
errorInfo='年份 '+value+" 有误,请核实重新输入!";
verifyByReg(value,reg,errorInfo);
}
//百分比:合法百分比(0-100之前的数字)
function validate_percentage(text,value){
reg=/(^[1-9](\d)?(\.\d+)?$)|(^0(\.\d+)?$)|(^100$)/;
errorInfo=text +" "+value+" 有误,请输入0到100的数字!";
verifyByReg(value,reg,errorInfo);
}
//系数:小于等于1的正数 在这里系数的小数点后面也是2位
function validate_modulus(text,value){
reg=/^[0](\.\d{2})$|^[1](\.[0]{2})?$/;
errorInfo=text+" "+value+" 有误,请输入小于0到1的数字!";
verifyByReg(value,reg,errorInfo);
}
//验证非负的正数,包含了正整数和正浮点数
function validate_posnumhaszero(text,value){
checknull(text,value);
reg=/^[1-9](\d+)?(\.\d+)?$|^0(\.\d+)?$/;
errorInfo=text+" "+value+" 有误,请输入大于或等于0 的数字!";
verifyByReg(value,reg,errorInfo);
}
//验证非正的负数,包含了负整数和负浮点数
function validate_negnumhaszero(text,value){
checknull(text,value);
reg=/^[-][1-9](\d+)?(\.\d+)?$|^[-]0(\.\d+)?$/;
errorInfo=text+" "+value+" 有误,请输入小于或等于0 的数字!";
verifyByReg(value,reg,errorInfo);
}
//验证正数,包含了正整数和正浮点数
function validate_posnum(text,value){
checknull(text,value);
reg=/^[1-9](\d+)?(\.\d+)?$|^0(\.\d+)$/;
errorInfo=text+" "+value+" 有误,请输入大于0 的数字!";
verifyByReg(value,reg,errorInfo);
}
//验证负数,包含了负整数和负浮点数
function validate_negnum(text,value){
checknull(text,value);
reg=/^[-][1-9](\d+)?(\.\d+)?$|^[-]0(\.\d+)$/;
errorInfo=text+" "+value+" 有误,请输入小于0 的数字!";
verifyByReg(value,reg,errorInfo);
}
//验证数,包括所有的数值,正数、负数、正浮点数、负浮点数
function validate_allnum(text,value){
checknull(text,value);
reg=/^[-|+]?[1-9](\d+)?(\.\d+)?$|^[-|+]?0(\.\d+)?$/;
errorInfo=text+" "+value+" 有误,请输入数字!";
verifyByReg(value,reg,errorInfo);
}
Javascript 相关文章推荐
一个对于Array的简单扩展
Oct 03 Javascript
JQuery 学习笔记 选择器之二
Jul 23 Javascript
javascript 的Document属性和方法集合
Jan 25 Javascript
js防止表单重复提交实现代码
Sep 05 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
Jan 12 Javascript
js仿京东轮播效果 选项卡套选项卡使用
Jan 12 Javascript
javascript数据类型详解
Feb 07 Javascript
js简易版购物车功能
Jun 17 Javascript
基于rollup的组件库打包体积优化小结
Jun 18 Javascript
详解Vue中watch对象内属性的方法
Feb 01 Javascript
vue滚动tab跟随切换效果
Jun 29 Javascript
基于javascript处理二进制图片流过程详解
Jun 08 Javascript
vue.js的安装方法
May 12 #Javascript
JS匹配日期和时间的正则表达式示例
May 12 #Javascript
js如何获取网页所有图片
May 12 #Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
May 12 #Javascript
jQuery手风琴的简单制作
May 12 #jQuery
jQuery.ajax向后台传递数组问题的解决方法
May 12 #jQuery
Centos6.8下Node.js安装教程
May 12 #Javascript
You might like
php5.2时间相差8小时
2007/01/15 PHP
PHP警告Cannot use a scalar value as an array的解决方法
2012/01/11 PHP
php转换颜色为其反色的方法
2015/04/27 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
页面按钮禁用与解除禁用的方法
2014/02/19 Javascript
jquery移动节点实例
2015/01/14 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
Ajax基础知识详解
2017/02/17 Javascript
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
python取代netcat过程分析
2018/02/10 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
支教自我鉴定
2014/01/18 职场文书
承诺书怎么写
2014/03/26 职场文书
爱心捐助倡议书
2014/05/19 职场文书
党员承诺书格式
2014/05/21 职场文书
信息工作经验交流材料
2014/05/28 职场文书
临床医学专业求职信
2014/08/08 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
复试通知单模板
2015/04/24 职场文书
信用卡收入证明范本
2015/06/12 职场文书
安全教育培训心得体会
2016/01/15 职场文书
Redis延迟队列和分布式延迟队列的简答实现
2021/05/13 Redis
python字典进行运算原理及实例分享
2021/08/02 Python
win11无法登录onedrive错误代码0x8004def7怎么办 ?
2022/04/05 数码科技
解决MySQL Varchar 类型尾部空格的问题
2022/04/06 MySQL
Docker 镜像介绍以及commit相关操作
2022/04/13 Servers