很全的正则验证方法

来源:互联网 发布:网络影视发行 编辑:程序博客网 时间:2024/05/01 13:29

  偶然看到一个整理很全的正则验证方法,分享给大家。

  摘录如下:

复制代码
<script src="scripts/jquery-1.4.1.js" type="text/javascript"></script>  <script language="javascript" type="text/javascript">    /**    * 定义验证各种格式类型的正则表达式对象   */    var Regexs = {      email: (/^[0-9a-z][0-9a-z\-\_\.]+@([0-9a-z][0-9a-z\-]*\.)+[a-z]{2,}$/i),//邮箱      phone: (/^0[0-9]{2,3}[2-9][0-9]{6,7}$/),                //座机手机号码      ydphpne: (/^((13[4-9])|(15[012789])|147|182|187|188)[0-9]{8}$/),//移动手机号码      allphpne: (/^((13[0-9])|(15[0-9])|(18[0-9]))[0-9]{8}$/),//所有手机号码      ltphpne: (/^((13[0-2])|(15[56])|(186)|(145))[0-9]{8}$/),//联通手机号码      dxphpne: (/^((133)|(153)|(180)|(189))[0-9]{8}$/),       //电信手机号码      url: (/^http:\/\/([0-9a-z][0-9a-z\-]*\.)+[a-z]{2,}(:\d+)?\/[0-9a-z%\-_\/\.]+/i),//网址      num: (/[^0-9]/),  //数字      cnum: (/[^0-9a-zA-Z_.-]/),      photo: (/\.jpg$|\.jpeg$|\.gif$/i),//图片格式      row: (/\n/ig)    };    /**     * @return 若符合对应的格式,返回true,否则返回false   */    function chkFormat(str, ftype) {      var nReg = Regexs[ftype];      if (str == null || str == "") return false; //输入为空,认为是验证通过      if (ftype == 'num') {        if (!nReg.test(str) && !chkChinese(str)) {//10.23 tenfy 必须为数字且不能有中文              return true;            } else { return false; }        }        if (!nReg.test(str)) {          return true;        } else {          return false;            }    };    function chkChinese(s) {      for (var i = 0; i < s.length; i++) {        if (s.charCodeAt(i) > 255) return true;      }      return false;    };  </script>  
复制代码

转自:http://bbs.csdn.net/topics/390348967


/==============================javascript正则表达式[转]=====================================================

javascript正则表达式[转]

转自:http://www.cnblogs.com/blbl/archive/2013/03/12/2956656.html

正则表达式可以:

l 测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。

l 替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。

l 根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。

 

正则表达式语法:

一个正则表达式就是由普通字符(例如字符az)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

 

创建正则表达式:

Var re=new RegExp();//RegExp是一个对象

//这样没有任何效果,需要将正则表达式的内容作为字符串传递进去

Re=new RegExp("a");//最简单的正则表达式,将匹配字母a

Re=new RegExp("a","i");//第二个参数,表示匹配时不分大小写

 

 

Ø RegExp构造函数第一个参数为正则表达式的文本内容,而第一个参数则为可选项标志。标志可以组合使用:

 

l   "g"(全文查找)

l   "i"(忽略大小写)

l   "m"(多行查找)

 

如:

Var re=new RegExp("a","gi");//匹配所有的aA

 

Ø 正则表达式还有另一种正则表达式字面量的声明方式

Var re=/a/gi;

 

正则表达式对象方法

l "test",返回一个Boolean值,它指出在被查找的字符串中是否存在模式。如果存在则返回true,否则就返回false

l "exec",用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组。

l "compile",把正则表达式编译为内部格式,从而执行得更快。

 

正则表达式对像的属性

l "source",返回正则表达式模式的文本的复本,只读。

l "lastIndex",返回字符位置,它是被查找字符串中下次成功匹配的开始位置。

l "$1...$9",返回九个在模式匹配期间找到的、最近保存的部分。只读。

l "input ($_)",返回执行规范表述查找的字符。只读。

l "lastMatch ($&)",返回任何正则表达式搜索过程中的最后匹配的字符。只读。

l "lastParen ($+)",如果有的话,返回任何正则表达式查找过程中最后括的子匹配。只读。

l "rightContext $'),"返回被搜索的字符串中从最后一个匹配位置开始到字符串结尾之间的字符。只读。

 

String对像一些和正则表达式相关的方法

l "match",找到一个或多个正则表达式的匹配。

l "replace",替换与正则表达式匹配的子串。

l "search",检索与正则表达式相匹配的值。

l "split",把字符串分割为字符串数组。

 

正则表达式高级篇

无字符

使用元字符注意事项:元字符是正则表达式的一部分,当我们要匹配正则表达式本身时,必须对这些元字符转义。下面是正则表达式用到的所有元字符:

(  [  {  \  ^  $  |  )  ?  *  +  .

 

Ø 使用RegExp构造函数与使用正则表达式字面量创建正则表达式注意点

 

Var str="\?";

Alert(str);//只会输出?

Var re=/\?/;//将匹配?

Alert(re.test(str));//true

Re=new RegExp"\?";出错,因为这相当于re=/\?/

Re=new RegExp"\\?";正确,将匹配?

Alert(re.test(str));//true

² 注意:既然双重转义这么不友好,所以还是用正则表达式字面量的声明方式。

 

贪婪量词与惰性量词

l 用贪婪量词进行匹配时,它首先会将整会字符串当成一个匹配,如果匹配的话就退出,如果不匹配,就截去最后一个字符进行匹配,如果不匹配,继续将最后一个字符截去进行匹配,直到有匹配为止。直到现在我们遇到的量词都是贪婪量词。

l 用贪婪量词进行匹配时,它首先将第一个字符当成一个匹配,如果成功则退出,如果失败,则测试前两个字符,依此增加,直到遇到合适的匹配为止。

 

分组与非捕获性分组

Re=/abc{2}/;//将匹配abcc

Re=/(abc){2}/;/将匹配abcabc

//上面的分组都是捕获性分组

Str="abcabc###";

Arr=re.exec(str);

Alert(arr[1]);//abc

//非捕获性分组(?:)

Re=/(?:abc){2}/;

Arr=re.exec(str);

Alert(arr[1]);//unefined

候选(也就是所说的“或”)

Re=/^a|bc$/;//将匹配开始位置的a或结束位置的bc

Str="add";

Alert(re.test(str));//true

Re=/^(a|bc)$/;//将匹配abc

Str="bc";

Alert(re.test(str));//true

 

电子邮箱正则表达式:

用户名只能包含字母数字以及下划线,最少一位,最多25位,用户名后面紧跟@,后面是域名,域名名称要求只能包含字母数字和减号,并且不能以减号开头或结尾,然后后面是域名后缀(可以有多个),域名后缀必须是点号连上2-4位英文字母。

Var re=/^\w{1,15}(?:@(?!-))(?:(?:[a-z0-9-]*)(?:[a-z0-9](?!-))(?:\.(?!-)))+[a-z]{2,4}$/;

 

 

其他验证,参考:

  http://blog.csdn.net/wangsky2/article/details/4455966


 

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手机下雨天进水声音出了问题怎么办 胸太小了该怎么办经常揉胸会变大吗 鼻冲洗器冲鼻子耳朵进水怎么办 手表进水了然后里面有水珠怎么办 玩游戏后头晕恶心想吐怎么办 吃完美林3小时后又发烧怎么办 颜值和身材都是负分怎么办 妈妈离婚又有一个孩子我该怎么办 孩子妈妈天天给孩子吃药我该怎么办 被像蚂蚁有翅膀的虫子咬了怎么办 1周半宝宝扭脚丫肿了怎么办 离婚后前夫带孩子走了找不到怎么办 宜昌全视之眼逃出卢浮宫怎么办 qq号被盗了密保手机也被改怎么办 乐视盒子控播平台认证怎么办 购买冲气娃娃被发现了怎么办 买了充气娃娃太美舍不得扔怎么办 一品官老爷账号密码忘了怎么办 苹果手机加声音显示出耳机怎么办 被删除的照片恢复后效果变差怎么办 w10系统玩刺激战场声音小怎么办 宝宝不咳嗽但是喉咙有痰怎么办 深圳限行如果车堵在路上怎么办 奔跑吧qq中奖我填写资料怎么办 微信之前绑定的手机号丢了怎么办 龙之谷手游换装备洗炼材料怎么办 小学生在班上碰到流氓同学怎么办 问道手游仓库密码忘了怎么办 问道手游安全码忘了怎么办 问道手游账号密码忘了怎么办 坐一天一夜长途车腰疼怎么办 智联的简历一直说不完整怎么办 智联招聘简历投错了怎么办 投简历的公司写错面试时怎么办 从原单位辞职后档案一直没提怎么办 手机因一些不良软件扣费怎么办 苹果手机玩崩坏3卡顿怎么办 以前很帅现在变得好难看了怎么办 偷了室友东西被发现了该怎么办 自己不喜欢狗但室友养狗怎么办 夏天身上闷热出很多小红豆怎么办?