常用的JavaScript验证正则表达式汇总


Posted in Javascript onNovember 26, 2013

下面都是我收集的一些比较常用的正则表达式,因为平常可能在表单验证的时候,用到的比较多。特发出来,让各位朋友共同使用。呵呵。

匹配中文字符的正则表达式: [u4e00-u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

匹配双字节字符(包括汉字在内):[^x00-xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

匹配空白行的正则表达式:ns*r
评注:可以用来删除空白行

匹配HTML标记的正则表达式:< (S*?)[^>]*>.*?|< .*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配首尾空白字符的正则表达式:^s*|s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
评注:表单验证时很实用

匹配网址URL的正则表达式:[a-zA-z]+://[^s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用

匹配国内电话号码:d{3}-d{8}|d{4}-d{7}
评注:匹配形式如 0511-4405222 或 021-87888822

匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始

匹配中国邮政编码:[1-9]d{5}(?!d)
评注:中国邮政编码为6位数字

匹配身份证:d{15}|d{18}
评注:中国的身份证为15位或18位

匹配ip地址:d+.d+.d+.d+
评注:提取ip地址时有用

匹配特定数字:
^[1-9]d*$    //匹配正整数
^-[1-9]d*$   //匹配负整数
^-?[1-9]d*$

//匹配整数
^[1-9]d*|0$  //匹配非负整数(正整数 + 0)
^-[1-9]d*|0$

//匹配非正整数(负整数 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$

//匹配正浮点数
^-([1-9]d*.d*|0.d*[1-9]d*)$  //匹配负浮点数
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$  //匹配浮点数
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$

//匹配非负浮点数(正浮点数 + 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$

//匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正

匹配特定字符串:
^[A-Za-z]+$

//匹配由26个英文字母组成的字符串
^[A-Z]+$

//匹配由26个英文字母的大写组成的字符串
^[a-z]+$

//匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$

//匹配由数字和26个英文字母组成的字符串
^w+$

//匹配由数字、26个英文字母或者下划线组成的字符串

在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下:

只能输入数字:“^[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]*$”
只能输入长度为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地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”
验证InternetURL:“^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$”
验证电话号码:“^((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”。

匹配中文字符的正则表达式: [u4e00-u9fa5]
匹配双字节字符(包括汉字在内):[^x00-xff]
匹配空行的正则表达式:n[s| ]*r
匹配HTML标记的正则表达式:/< (.*)>.*|< (.*) />/
匹配首尾空格的正则表达式:(^s*)|(s*$)
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?

(1)应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
String.prototype.len=function(){return this.replace([^x00-xff]/g,”aa”).length;}

(2)应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现
String.prototype.trim = function()
{
return this.replace(/(^s*)|(s*$)/g, “”);
}

(3)应用:利用正则表达式分解和转换IP地址
function IP2V(ip) //IP地址转换成对应数值
{
re=/(d+).(d+).(d+).(d+)/g //匹配IP地址的正则表达式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error(”Not a valid IP address!”)
}
}

(4)应用:从URL地址中提取文件名的javascript程序
s=”https://3water.com/page1.htm”;
s=s.replace(/(.*/){0,}([^.]+).*/ig,”$2″) ; //Page1.htm

(5)应用:利用正则表达式限制网页表单里的文本框输入内容
用正则表达式限制只能输入中文:onkeyup=”value=”/blog/value.replace(/["^u4E00-u9FA5]/g,”) ” onbeforepaste=”clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,”))”

用正则表达式限制只能输入全角字符: onkeyup=”value=”/blog/value.replace(/["^uFF00-uFFFF]/g,”) ” onbeforepaste=”clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,”))”

用正则表达式限制只能输入数字:onkeyup=”value=”/blog/value.replace(/["^d]/g,”) “onbeforepaste= “clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,”))”

用正则表达式限制只能输入数字和英文:onkeyup=”value=”/blog/value.replace(/[W]/g,””) “onbeforepaste=”clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,”

Javascript 相关文章推荐
关于javascript模块加载技术的一些思考
Nov 28 Javascript
JavaScript模拟push
Mar 06 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
Apr 07 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
Aug 24 Javascript
Bootstrap BootstrapDialog使用详解
Feb 17 Javascript
jQuery实现百度登录框的动态切换效果
Apr 21 jQuery
详解Angular2组件之间如何通信
Jun 22 Javascript
jquery动态赋值id与动态取id方法示例
Aug 21 jQuery
Angular.js中window.onload(),$(document).ready()的写法浅析
Sep 28 Javascript
100行代码实现一个vue分页组功能
Nov 06 Javascript
JS实现滑动拼图验证功能完整示例
Mar 29 Javascript
javascript贪吃蛇游戏设计与实现
Sep 17 Javascript
JS+DIV实现鼠标划过切换层效果的实例代码
Nov 26 #Javascript
键盘KeyCode值列表汇总
Nov 26 #Javascript
正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)
Nov 26 #Javascript
jquery简单实现滚动条下拉DIV固定在头部不动
Nov 25 #Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
Nov 25 #Javascript
ie与ff下的event事件使用介绍
Nov 25 #Javascript
javascript利用apply和arguments复用方法
Nov 25 #Javascript
You might like
PHP导入Excel到MySQL的方法
2011/04/23 PHP
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
2013/10/22 PHP
PHP实现简单注册登录系统
2020/12/28 PHP
一段实时更新的时间代码
2006/07/07 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
JavaScript中的细节分析
2012/06/30 Javascript
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
jquery实现excel导出的方法
2013/04/04 Javascript
JavaScript获取当前日期是星期几的方法
2015/04/06 Javascript
详解javascript事件冒泡
2016/01/09 Javascript
基于AngularJS前端云组件最佳实践
2016/10/20 Javascript
JQuery实现动态操作表格
2017/01/11 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
详解小程序rich-text对富文本支持方案
2018/11/28 Javascript
a标签调用js的方法总结
2019/09/05 Javascript
Python实现SVN的目录周期性备份实例
2015/07/17 Python
python定时利用QQ邮件发送天气预报的实例
2017/11/17 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
Python tkinter之Bind(绑定事件)的使用示例
2021/02/05 Python
欧洲最大的球衣网上商店:Kitbag
2017/11/11 全球购物
举例说明类变量和实例变量的区别
2016/06/30 面试题
网络工程师个人的自我评价范文
2013/10/01 职场文书
幼儿园秋游活动方案
2014/01/21 职场文书
网络编辑岗位职责
2014/03/18 职场文书
超市开业庆典活动策划方案
2014/09/15 职场文书
2014年采购工作总结
2014/11/20 职场文书
技术负责人岗位职责
2015/02/10 职场文书
单身申明具结书
2015/02/26 职场文书
结婚老公保证书
2015/02/26 职场文书
小学生必读成语故事大全:送给暑假的你们
2019/07/09 职场文书
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技
解决Springboot PostMapping无法获取数据的问题
2022/05/06 Java/Android