风君子博客

  • 首页
  • 业界
  • 前端
  • 运维
  • 建站
  • 软件
  • 生活
  • 后端
  • 创投
  • 运营
  • 程序人生
    • 影视
    • 游戏
    • 句子
    • bootstrap4教程
    • 资源
    • 日期计算器
  • 其他
    • 说说
    • 关于本站
  1. 首页
  2. 前端
  3. 正文

js正则表达式验证大全

2018年10月31日 1204点热度 0人点赞 0条评论

本文内容较多,可以使用ctrl+F搜索自己需要的正则


<script type="text/javascript">
	//判断输入内容是否为空    

	function IsNull() {
		var str = document.getElementById('str').value.trim();
		if (str.length == 0) {
			alert('对不起,文本框不能为空或者为空格!'); //请将“文本框”改成你需要验证的属性名称!    
		}
	}

	//判断日期类型是否为YYYY-MM-DD格式的类型    
	function IsDate() {
		var str = document.getElementById('str').value.trim();
		if (str.length != 0) {
			var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
			var r = str.match(reg);
			if (r == null)
				alert('对不起,您输入的日期格式不正确!'); //请将“日期”改成你需要验证的属性名称!    
		}
	}

	//判断日期类型是否为YYYY-MM-DD hh:mm:ss格式的类型    
	function IsDateTime() {
		var str = document.getElementById('str').value.trim();
		if (str.length != 0) {
			var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
			var r = str.match(reg);
			if (r == null)
				alert('对不起,您输入的日期格式不正确!'); //请将“日期”改成你需要验证的属性名称!    
		}
	}

	//判断日期类型是否为hh:mm:ss格式的类型    
	function IsTime() {
		var str = document.getElementById('str').value.trim();
		if (str.length != 0) {
			reg = /^((20|21|22|23|[0-1]\d)\:[0-5][0-9])(\:[0-5][0-9])?$/
			if (!reg.test(str)) {
				alert("对不起,您输入的日期格式不正确!"); //请将“日期”改成你需要验证的属性名称!    
			}
		}
	}

	//判断输入的字符是否为英文字母    
	function IsLetter() {
		var str = document.getElementById('str').value.trim();
		if (str.length != 0) {
			reg = /^[a-zA-Z]+$/;
			if (!reg.test(str)) {
				alert("对不起,您输入的英文字母类型格式不正确!"); //请将“英文字母类型”改成你需要验证的属性名称!    
			}
		}
	}

	//判断输入的字符是否为整数    
	function IsInteger() {
		var str = document.getElementById('str').value.trim();
		if (str.length != 0) {
			reg = /^[-+]?\d*$/;
			if (!reg.test(str)) {
				alert("对不起,您输入的整数类型格式不正确!"); //请将“整数类型”要换成你要验证的那个属性名称!    
			}
		}
	}

	//判断输入的字符是否为双精度    
	function IsDouble(val) {
		var str = document.getElementById('str').value.trim();
		if (str.length != 0) {
			reg = /^[-\+]?\d+(\.\d+)?$/;
			if (!reg.test(str)) {
				alert("对不起,您输入的双精度类型格式不正确!"); //请将“双精度类型”要换成你要验证的那个属性名称!    
			}
		}
	}


	//判断输入的字符是否为:a-z,A-Z,0-9    
	function IsString() {
		var str = document.getElementById('str').value.trim();
		if (str.length != 0) {
			reg = /^[a-zA-Z0-9_]+$/;
			if (!reg.test(str)) {
				alert("对不起,您输入的字符串类型格式不正确!"); //请将“字符串类型”要换成你要验证的那个属性名称!    
			}
		}
	}

	//判断输入的字符是否为中文    
	function IsChinese() {
		var str = document.getElementById('str').value.trim();
		if (str.length != 0) {
			reg = /^[\u0391-\uFFE5]+$/;
			if (!reg.test(str)) {
				alert("对不起,您输入的字符串类型格式不正确!"); //请将“字符串类型”要换成你要验证的那个属性名称!    
			}
		}
	}

	//判断输入的EMAIL格式是否正确    
	function IsEmail() {
		var str = document.getElementById('str').value.trim();
		if (str.length != 0) {
			reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
			if (!reg.test(str)) {
				alert("对不起,您输入的字符串类型格式不正确!"); //请将“字符串类型”要换成你要验证的那个属性名称!    
			}
		}
	}

	//判断输入的邮编(只能为六位)是否正确    
	function IsZIP() {
		var str = document.getElementById('str').value.trim();
		if (str.length != 0) {
			reg = /^\d{6}$/;
			if (!reg.test(str)) {
				alert("对不起,您输入的字符串类型格式不正确!"); //请将“字符串类型”要换成你要验证的那个属性名称!    
			}
		}
	}

	//判断输入的数字不大于某个特定的数字    
	function MaxValue() {
		var val = document.getElementById('str').value.trim();
		if (str.length != 0) {
			reg = /^[-+]?\d*$/;
			if (!reg.test(str)) { //判断是否为数字类型    
				if (val > parseInt('123')) //“123”为自己设定的最大值    
				{
					alert('对不起,您输入的数字超出范围'); //请将“数字”改成你要验证的那个属性名称!    
				}
			}
		}
	}
</script>

Phone : /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/    
 Mobile : /^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/    
 Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/   
 IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/   
 QQ : /^[1-9]\d{4,8}$/   
 某种特殊金额:/^((\d{1,3}(,\d{3})*)|(\d+))(\.\d{2})?$/               //说明:除“XXX    XX,XXX    XX,XXX.00”格式外

//为上面提供各个JS验证方法提供.trim()属性   
String.prototype.trim=function(){   
        return this.replace(/(^\s*)|(\s*$)/g, "");    
    }

调用:
<input type="text" name="str" >
<input type="button" value=" 确定 " onClick="">    //onClick中写自己要调用的JS验证函数
<script type="text/javascript">
	var patterms = new Object();
//验证IP
patterms.ip = /^(\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])){3}$/;
//验证EMAIL
patterms.email = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
//验证日期格式2009-07-13
patterms.date = /^\d{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]\d|3[0-1])$/;
//验证时间格式16:55:39
patterms.time = new RegExp("^([0-1]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$");
//验证函数
function verify(str,pat)
{
    var thePat;
    thePat = patterms[pat];
    if(thePat.test(str))
    {
        return true;
    }
    else
    {
        return false;
    }
}
//测试
alert(verify("asidycom@163.com","email")+","+verify("192.168.1.1","ip")+
    ","+verify("16:55:39","time")+","+verify("2009-07-13","date")+","+verify("192.168","ip"));

</script>

验证数字:^[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+$
验证用户名或昵称经常用到: ^[\u4e00-\u9fa5A-Za-z0-9-_]*$ 只能中英文,数字,下划线,减号
验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+
验证汉字:^[\u4e00-\u9fa5],{0,}$
验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
验证电话号码:^(\(\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+)?$

由于手机号段的不断更新,以前的正则表达式已经无法满足需求。重新编写这条表达式,号段资料来源依据:http://www.von-line.com/hao.htm

var regex = {
    mobile: /^0?(13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]{8}$/
}

表达式分析:
“/”代表一个正则表达式。
“^”代表字符串的开始位置,“$”代表字符串的结束位置。
“?”代表匹配前面的字符一个或零个,所以这里0?的意思是手机号码可以以0开头或不以0开头。
接下的部分验证11位的手机号码,先从13开始,因为从130-139都有所以可选区间是[0-9],15开头的号码没有154所以[]里面没有4这个数字,当然也可以写成[0-35-9],下面18和14开的号码同上。
小括号括起来的代表一个子表达式,里面是4个可选分支分别用“|”来区分开来,在正则中“|”的优先级是最低的,这里每个分支匹配的都是3个字符(一个[]只能匹配一个字符,里面是可选的意思),也就是手机号码的前3位数字,那么后面还有8位数字需要匹配,可以是0-9的任意字符,所以是“[0-9]{8}”,{}中的数字代表匹配前面字符的个数。分析完毕。

 

本文转自:https://www.cnblogs.com/hai-ping/articles/2997538.html

标签: js 前端 正则表达式
最后更新:2019年6月6日

风君子

独自遨游何稽首 揭天掀地慰生平

点赞
< 上一篇
下一篇 >

猜你喜欢

  • 基金a类b类c类什么意思

  • 深港通和沪港通的区别是什么

  • 前端小哥玩 HTML 复选框上瘾:能画 logo 做视频,还开源成 JS 库

  • 货币基金abc的区别

  • 华为 HarmonyOS 开源鸿蒙方舟编译器前端工具“方舟 JS 运行时”正式开源

  • 前融是什么意思

  • 禁止鼠标右键代码 禁止按键F5和禁止鼠标右键菜单 js代码

  • 什么是房地产前端融资

  • 国内首家!飞骧科技推出完整5G射频前端解决方案

  • JS基础测试: typeof delete window.name 的返回结果是什么?​

  • SA:射频前端元件市场增长停滞

  • 极致延伸的5G频谱正在改写射频前端价值

文章评论

取消回复

风君子

独自遨游何稽首 揭天掀地慰生平

最新 热点 随机
最新 热点 随机
苹果 Apple Store 零售店扩展 Today at Apple 创想营活动,新增 7 座城市 曝骁龙 8 + 首批新机调试 6 月系统封包,年底马上发布台积电 + ARM 新架构骁龙 8 Gen 2 芯片 快手高管解读 Q1 财报:25% 月活用户创作内容,中长尾创作者内容贡献了 80% 以上播放量 【IT之家开箱】Redmi Note 11T Pro + 子夜黑图赏 数源科技:目前 5G 通信壳仅适用于华为 P50 Pro 机型,业务占比较小 苹果 Apple Watch 全新表盘“彩虹线条”上线,新款彩虹版表带开启预订,售价 379 元 999 元至 1299 元,小米 Redmi Note11 SE 5G 手机发布:搭载天玑 700 芯片,全系标配 128GB 存储 【IT之家评测室】红米 Note 11T Pro+ :首款 A + 认证 LCD 屏幕闪亮登场 AMD 公布智能访问存储技术:支持微软 DirectStorage,缩短游戏加载时间 首发价 2499 元,小米米家冰箱对开门 610L 墨羽岩发布:一级能效,20 格分区,支持 App 远程操控
抖音IP属地准确吗e地跑:全国线路覆盖率达92.5%,将升级智能扫码加油功能完成加油监控米哈游《原神》全球用户支出将突破 27 亿美元:打破最高季度纪录,中美日韩德支出最多索尼 QD-OLED 画谛系列电视 A95K 国行即将发布格力电器 2021 年营收 1878.69 亿元同比增长 11.69%施耐德电气顾俊:5G赋能,制造业智能化转型“加速”苹果将 iPad Air 2 和 iPad Mini 2 加入过时产品名单IDC:2021 年中国网络市场规模达 102.4 亿美元,路由器市场同比下滑 2.6%波导股份第一季度净利润 552.94 万元,同比增长 75.79%我们常用谁言寸草心报得三春晖歌颂母爱,它的作者是
怪物猎人世界Steam版联机掉线多种解决方法 苹果Apple ID密码修改成功依旧无法登陆怎么办 你我贷秒啦款项筹集中要多久 鸿海董事长刘扬伟:今年市场将有更大的波动,更具挑战 和解达成后,消息称美光寻求联电 28nm 产能支持 Counterpoint:2022 年上半年中国智能手机销量连续 10 周下滑,荣耀逆势强劲增长 一代机皇三星 S21 Ultra 即将谢幕,为 Galaxy S22 系列让路 网友自制“霸气小爪爪” 家养鸡仔一秒变霸王龙! 英伟达与ARM进入独家谈判期 有望在夏末完成收购 魅族春节大促:魅族 17 1999 元起,18 Pro 3499 元起
标签聚合
支付宝 银行卡 谷歌 IT资讯 贷款 苹果 手机 秘籍 快科技 华为 小米 借款人 股票 银行 业界 信用卡 科技 京东 特斯拉 美国 马斯克 iphone 额度 腾讯 利息 利率 三星 汽车 芯片 微软
Tags
酒 胡萝卜 食物 私房菜 有什么好处 水果 能吃 鸡蛋 身体 会胖吗 副作用 吃什么 相克 好处 饮食 作用 土豆食谱 方法 牛肉 豆腐 糖 热量 茄子 好吃 营养 皮肤过敏 区别 菜谱 牛肉食谱 功效 怎么做 营养价值 豆腐食谱 维生素 土豆 热菜 食用方法 常吃 健康 排骨 汤类 高血压 牛奶 糖尿病人 做法 吃法 下饭菜 海鲜 一起吃 排骨食谱
最近评论
九九 发布于 3 周前(05月06日) 也可能是 IP2LOCATION 数据
风君子 发布于 5 个月前(12月20日) 直播这么赚钱的吗?
wanif 发布于 5 个月前(12月18日) 采用你提供的pe制作u盘后无法识别mac硬盘,如何解决?
robotunl 发布于 5 个月前(12月18日) 可以用了,感谢
robotunl 发布于 5 个月前(12月17日) DISM++链接下不了了啊,能再发一个么。 还有怎么制作和博主一样的PE u盘。
tiantian 发布于 10 个月前(08月08日) 谢谢分享!
欣姐 发布于 1 年前(02月06日) 很有道理啊
我在東莞上班睡覺工資一千五六 发布于 1 年前(12月16日) 东莞台商都开始搬迁河源,梅州包括赣州一些地方要么就是内地城市,因为电子厂需要大量人力所以基本上都是中...
我在東莞上班睡覺工資一千五六 发布于 1 年前(12月16日) 这个怎么有意思了,是不是太真实了 :smile: :smile:
东莞石碣维信五金制品有限公司睡觉一千五六 发布于 1 年前(12月15日) 台商大陆模式搞习惯了去了印度未必成功 :idea:

COPYRIGHT © 2021 风君子博客. ALL RIGHTS RESERVED.

豫ICP备14018241号