正则表达式

正则表达式即另一种表单校验方法.

RegExp对象是Regula Expression(正则表达式)的缩写,其作用是对字符串执行模式匹配.如:验证电子邮件地址,电话号码等字符串.

1.定义正则表达式

   定义正则表达式有两种构造形式:普通方式;构造函数方式.

   a.普通方式:

      语法: var reg = /表达式/(附加参数)

      (注:表达式-使用某些特殊字符来代表特殊的规则

            附加参数-用来扩展表达式的含义,主要包括三个参数

            ☆ g-代表可以进行全局匹配

            ☆ i -代表不区分大小写匹配

            ☆m-代表可以进行多行匹配)

      var reg = /white/;var reg = /white/g;

   b.构造函数:

      语法: var reg = new RegExp("表达式","附加参数");

      var reg = new RegExp("white"); var reg = new RegExp("white","g");

注:普通方式中的表达时必须有一个常量的字符串,而构造函数中的表达式可以是常量字符串,也可以是一个JavaScript变量!

    例如:根据游湖输入作为表达式的参数: var reg = new RegExp($("#id").val(),"g");

2.表达式模式

   a.简单模式:通过普通字符的组合来表达的模式.

      例如: var reg = /China/;

   b.复合模式:指用含有通配符来表达的模式

      例如: var reg = / ^\w+$/;

      如果说正则表达式是打开了一个快速校验,匹配自己需要内容的门,而元字符就是它的钥匙.

     

   . 匹配除 \n 以外的任何字符(注意元字符是小数点)。
   [abcde] 匹配 abcde 之中的任意一个字符
   [a-h] 匹配 a 到 h 之间的任意一个字符
   [^fgh] 不与 fgh 之中的任意一个字符匹配
   \w 匹配大小写英文字符及数字 0 到 9 之间的任意一个及下划线,相当于 [a-zA-Z0-9_]
   \W 不匹配大小写英文字符及数字 0 到 9 之间的任意一个,相当于 [^a-zA-Z0-9_]
   \s 匹配任何空白字符,相当于 [ \f\n\r\t\v]
   \S 匹配任何非空白字符,相当于 [^\s]
   \d 匹配任何 0 到 9 之间的单个数字,相当于 [0-9]
   \D 不匹配任何 0 到 9 之间的单个数字,相当于 [^0-9]
   [\u4e00-\u9fa5] 匹配任意单个汉字(这里用的是 Unicode 编码表示汉字的 )
   正则表达式限定符
   上面的元字符都是针对单个字符匹配的,要想同时匹配多个字符的话,还需要借助限定符。下面是一些常见的限定符 ( 下表中 n 和 m 都是表示整数,并且 0<n<m) :
   * 匹配 0 到多个元字符,相当于 {0,}
   ? 匹配 0 到 1 个元字符,相当于 {0,1}
   {n} 匹配 n 个元字符
   {n,} 匹配至少 n 个元字符
   {n,m} 匹配 n 到 m 个元字符
   + 匹配至少 1 个元字符,相当于 {1,}
   \b 匹配单词边界
   ^ 字符串必须以指定的字符开始
   $ 字符串必须以指定的字符结束 

3.常见的正则表达式:

   

整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$
只能输入数字:"^[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}$"正确格式为:"XXX-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"。整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$
只能输入数字:"^[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}$"正确格式为:"XXX-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"。

 

posted @ 2015-04-24 00:51  黄昏_1995  阅读(158)  评论(0编辑  收藏  举报