常用正则表达式(一)


正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。


匹配中文字符的正则表达式: [/u4e00-/u9fa5]

评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

匹配双字节字符(包括汉字在内):[^/x00-/xff]

评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

匹配空白行的正则表达式:/n/s*/r

评注:可以用来删除空白行

匹配HTML标记的正则表达式:<(/S*?)[^>]*>.*?<//1>|<.*? />

评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配首尾空白字符的正则表达式:^/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个英文字母或者下划线组成的字符串

匹配时间格式:

^(d)(:)?(d)2(d)$ //短时间

^(d)(-│/)(d)2(d) (d):(d):(d)$ //长时间

^(d)(-│/)(d)2(d)$ //短日期

//日期+时间

//只有年和月

//只有小时和分钟


用户名或密码^[a-zA-Z]/w{5,19}$

6位邮政编码^[0-9]{6}$

电话号码^[0-9]{3,4}-[0-9]{7,8}$

18位身份证^[0-9]{6}[12][0-9]{3}[01][0-9][0123][0-9][0-9]{3}[12]$

E-mail地址^.{1,}@.{1,}/.[a-zA-Z]{2,3}$

URL网址^http:///S+/./S+$或^http://([/w-]+/.)+[/w-]+(/[/w-./?%&=]*)?

只包括汉字^[/u4e00-/u9fa5]{1,}$

检查长度^.{0,20}$

数字^[-+]?/d+(/./+)?$

年龄^(1[0-3]/d|/d{1,2}$

货币^/d+/./d{2}$

短日期^([1-2]/d{3}|[0-9]{3})-[0-1]*[0-9]-[0-3]*[0-9]$


短日期(yyyy-MM-DD)格式,基本上把闰年和2月等的情况都考虑进去了:

^((((1[6-9]|[2-9]/d)/d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]/d|3[01]))|(((1[6-9]|[2-9]/d)/d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]/d|30))|(((1[6-9]|[2-9]/d)/d{2})-0?2-(0?[1-9]|1/d|2[0-8]))|(((1[6-9]|[2-9]/d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$


这是加了时间验证的:

^((((1[6-9]|[2-9]/d)/d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]/d|3[01]))|(((1[6-9]|[2-9]/d)/d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]/d|30))|(((1[6-9]|[2-9]/d)/d{2})-0?2-(0?[1-9]|1/d|2[0-8]))|(((1[6-9]|[2-9]/d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?/d):[0-5]?/d:[0-5]?/d$

b/s开发常用javaScript技术分类

一、验证类

1、数字验证内

1.1 整数

1.2 大于0的整数(用于传来的ID的验证)

1.3 负整数的验证

1.4 整数不能大于iMax

1.5 整数不能小于iMin

2、时间类

2.1 短时间,形如 (13:04:06)

2.2 短日期,形如 (2003-12-05)

2.3 长时间,形如 (2003-12-05 13:04:06)

2.4 只有年和月。形如(2003-05,或者2003-5)

2.5 只有小时和分钟,形如(12:03)

3、表单类

3.1 所有的表单的值都不能为空

3.2 多行文本框的值不能为空。

3.3 多行文本框的值不能超过sMaxStrleng

3.4 多行文本框的值不能少于sMixStrleng

3.5 判断单选框是否选择。

3.6 判断复选框是否选择.

3.7 复选框的全选,多选,全不选,反选

3.8 文件上传过程中判断文件类型

4、字符类

4.1 判断字符全部由a-Z或者是A-Z的字字母组成

4.2 判断字符由字母和数字组成。

4.3 判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母

4.4 字符串替换函数.Replace();

5、浏览器类

5.1 判断浏览器的类型

5.2 判断ie的版本

5.3 判断客户端的分辨率

6、结合类

6.1 email的判断。

6.2 手机号码的验证

6.3 身份证的验证

二、功能类

1、时间与相关控件类

1.1 日历

1.2 时间控件

1.3 万年历

1.4 显示动态显示时钟效果(文本,如OA中时间)

1.5 显示动态显示时钟效果 (图像,像手表)

2、表单类

2.1 自动生成表单

2.2 动态添加,修改,删除下拉框中的元素

2.3 可以输入内容的下拉框

2.4 多行文本框中只能输入iMax文字。如果多输入了,自动减少到iMax个文字(多用于短信发送)

3、打印类

3.1 打印控件

4、事件类

4.1 屏蔽右键

4.2 屏蔽所有功能键

4.3 --> 和<-- F5 F11,F9,F1

4.4 屏蔽组合键ctrl+N

5、网页设计类

5.1 连续滚动的文字,图片(注意是连续的,两段文字和图片中没有空白出现)

5.2 html编辑控件类

5.3 颜色选取框控件

5.4 下拉菜单

5.5 两层或多层次的下拉菜单

5.6 仿IE菜单的按钮。(效果如rongshuxa.com的导航栏目)

5.7 状态栏,title栏的动态效果(例子很多,可以研究一下)

5.8 双击后,网页自动滚屏

6、树型结构。

6.1 asp+SQL版

6.2 asp+xml+sql版

6.3 java+sql或者java+sql+xml

7、无边框效果的制作

8、连动下拉框技术

9、文本排序

一、验证类

1、数字验证内

1.1 整数

/^(-|/+)?/d+$/.test(str)

1.2 大于0的整数(用于传来的ID的验证)

/^/d+$/.test(str)

1.3 负整数的验证

/^-/d+$/.test(str)

2、时间类

2.1 短时间,形如 (13:04:06)

function isTime(str)

{

var a = str.match(/^(/d{1,2})(:)?(/d{1,2})/2(/d{1,2})$/);

if (a == null) {alert('输入的参数不是时间格式'); return false;}

if (a[1]>24 || a[3]>60 || a[4]>60)

{

alert("时间格式不对");

return false

}

return true;

}

2.2 短日期,形如 (2003-12-05)

function strDateTime(str)

{

var r = str.match(/^(/d{1,4})(-|//)(/d{1,2})$/);

if(r==null)return false;

var d= new Date(r[1],r[3]-1,r[4]);

return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);

}

2.3 长时间,形如 (2003-12-05 13:04:06)

function strDateTime(str)

{

var reg = /^(/d{1,2}) (/d{1,2}):(/d{1,2})$/;

var r = str.match(reg);

if(r==null)return false;

var d= new Date(r[1],r[4],r[5],r[6],r[7]);

return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


jquery.validate使用攻略(表单校验) 目录 jquery.validate使用攻略1 第一章&#160;jquery.validate使用攻略1 第二章&#160;jQuery.validate.js API7 Custom selectors7 Utilities8 Validato
/\s+/g和/\s/g的区别 正则表达式/\s+/g和/\s/g,目的均是找出目标字符串中的所有空白字符,但两者到底有什么区别呢? 我们先来看下面一个例子: let name = &#39;ye wen jun&#39;;let ans = name.replace(/\s/g, &#39;&#3
自整理几个jquery.Validate验证正则: 1. 只能输入数字和字母 /^[0-9a-zA-Z]*$/g jQuery.validator.addMethod(&quot;letters&quot;, function (value, element) { return this.optio
this.optional(element)的用法 this.optional(element)是jquery.validator.js表单验证框架中的一个函数,用于表单控件的值不为空时才触发验证。 简单来说,就是当表单控件值为空的时候不会进行表单校验,此函数会返回true,表示校验通过,当表单控件
jQuery.validate 表单动态验证 实际上jQuery.validate提供了动态校验的方法。而动态拼JSON串的方式是不支持动态校验的。牺牲jQuery.validate的性能优化可以实现(jQuery.validate的性能优化见图1.2 jQuery.validate源码 )。 也可
自定义验证之这能输入数字(包括小数 负数 ) &lt;script type=&quot;text/javascript&quot;&gt; function onlyNumber(obj){ //得到第一个字符是否为负号 var t = obj.value.charAt(0); //先把非数字的都
// 引入了外部的验证规则 import { validateAccountNumber } from &quot;@/utils/validate&quot;; validator.js /*是否合法IP地址*/ export function validateIP(rule, value,cal
VUE开发--表单验证(六十三) 一、常用验证方式 vue 中表单字段验证的写法和方式有多种,常用的验证方式有3种: data 中验证 表单内容: &lt;!-- 表单 --&gt; &lt;el-form ref=&quot;rulesForm&quot; :rules=&quot;formRul
正则表达式 座机的: 例子: 座机有效写法: 0316-8418331 (010)-67433539 (010)67433539 010-67433539 (0316)-8418331 (0316)8418331 正则表达式写法 0\d{2,3}-\d{7,8}|\(?0\d{2,3}[)-]?\d
var reg = /^0\.[1-9]{0,2}$/;var linka = 0.1;console.log (reg.test (linka)); 0到1两位小数正则 ^(0\.(0[1-9]|[1-9]{1,2}|[1-9]0)$)|^1$ 不含0、0.0、0.00 // 验证是否是[1-10
input最大长度限制问题 &lt;input type=&quot;text&quot; maxlength=&quot;5&quot; /&gt; //可以 &lt;input type=&quot;number&quot; maxlength=&quot;5&quot; /&gt; //没有效
js输入验证是否为空、是否为null、是否都是空格 目录 1.截头去尾 trim 2.截头去尾 会去掉开始和结束的空格,类似于trim 3.会去掉所有的空格,包括开始,结束,中间 1.截头去尾 trim str=str.trim(); // 强烈推荐 最常用、最实用 or $.trim(str);
正则表达式语法大全 字符串.match(正则):返回符合的字符串,若不满足返回null 字符串.search(正则):返回搜索到的位置,若非一个字符,则返回第一个字母的下标,若不匹配则返回-1 字符串.replace(正则,新的字符串):找到符合正则的内容并替换 正则.test(字符串):在字符串中
正整数正则表达式正数的正则表达式(包括0,小数保留两位): ^((0{1}.\d{1,2})|([1-9]\d.{1}\d{1,2})|([1-9]+\d)|0)$正数的正则表达式(不包括0,小数保留两位): ^((0{1}.\d{1,2})|([1-9]\d.{1}\d{1,2})|([1-9]+
JS 正则验证 test() /*用途:检查输入手机号码是否正确输入:s:字符串返回:如果通过验证返回true,否则返回false /function checkMobile(s){var regu =/[1][3][0-9]{9}$/;var re = new RegExp(regu);if (r
请输入保留两位小数的销售价的正则: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/ 1.只能输入英文 &lt;input type=&quot;text&quot; onkeyup=&quot;value
判断价格的正则表达式 价格的正则表达式 /(^[1-9]\d*(\.\d{1,2})?$)|(^0(\.\d{1,2})?$)/; 1 解析:价格符合两种格式 ^ [1-9]\d*(.\d{1,2})?$ : 1-9 开头,后跟是 0-9,可以跟小数点,但小数点后要带上 1-2 位小数,类似 2,2
文章浏览阅读106次。这篇文章主要介绍了最实用的正则表达式整理,比如校验邮箱的正则,号码相关,数字相关等等,本文给大家列举的比较多,需要的朋友可以参考下。_/^(?:[1-9]d*)$/ 手机号
文章浏览阅读1.2k次。4、匹配中的==、an==、== an9、i9 == "9i"和99p==请注意下面这部分的作用,它在匹配中间内容的时候排除了说明:当html字符串如下时,可以匹配到两处,表示匹配的字符串不包含and且不包含空白字符。说明:在上面的正则表达式中,_gvim正则表达式匹配不包含某个字符串
文章浏览阅读897次。【代码】正则表达式匹配a标签的href。_auto.js 正则匹配herf