常用的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 相关文章推荐
容易被忽略的JS脚本特性
Sep 13 Javascript
JavaScript语言对Unicode字符集的支持详解
Dec 30 Javascript
在jQuery中处理XML数据的大致方法
Aug 14 Javascript
深入理解JS正则表达式---分组
Jul 18 Javascript
获取jqGrid中选择的行的数据
Nov 30 Javascript
jQuery设计思想
Mar 07 Javascript
微信小程序 页面跳转如何实现传值
Apr 05 Javascript
js 数组详细操作方法及解析合集
Jun 01 Javascript
layer插件select选中默认值的方法
Aug 14 Javascript
Ant Design Pro 下实现文件下载的实现代码
Dec 03 Javascript
vue实现数字动态翻牌的效果(开箱即用)
Dec 08 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
May 28 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
Zerg兵种介绍
2020/03/14 星际争霸
php URL编码解码函数代码
2009/03/10 PHP
PHP使用header()输出图片缓存实例
2014/12/09 PHP
PHP如何实现订单的延时处理详解
2017/12/30 PHP
关于JavaScript的一些看法
2009/05/27 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
2015/05/01 Javascript
js实现表单Radio切换效果的方法
2015/08/17 Javascript
巧用jQuery选择器提高写表单效率的方法
2016/08/19 Javascript
微信小程序 wxapp内容组件 progress详细介绍
2016/10/31 Javascript
Vue2.0用户权限控制解决方案
2017/11/29 Javascript
iview table render集成switch开关的实例
2018/03/14 Javascript
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
JavaScript实现动态添加、移除元素或属性的方法分析
2019/01/03 Javascript
Koa 中的错误处理解析
2019/04/09 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
JS字符串常用操作方法实例小结
2019/06/24 Javascript
[02:27]刀塔重生降临
2015/10/14 DOTA
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
Python中协程用法代码详解
2018/02/10 Python
Python中安装easy_install的方法
2018/11/18 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
python 2.7 检测一个网页是否能正常访问的方法
2018/12/26 Python
Python Image模块基本图像处理操作小结
2019/04/13 Python
python的re模块使用方法详解
2019/07/26 Python
Python @property原理解析和用法实例
2020/02/11 Python
python求最大公约数和最小公倍数的简单方法
2020/02/13 Python
Html5剪切板功能的实现代码
2018/06/29 HTML / CSS
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
过滤器的用法
2013/10/08 面试题
网上商城创业计划书范文
2014/01/31 职场文书
《美丽的公鸡》教学反思
2014/02/25 职场文书
2016学校先进集体事迹材料
2016/02/29 职场文书