正则表达式的语法

正则表达式语法

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

这里有一些可能会遇到的正则表达式示例:

Visual Basic Scripting Edition

VBScript

匹配

/^\[ \t]*$/

"^\[ \t]*$"

匹配一个空白行。

/\d{2}-\d{5}/

"\d{2}-\d{5}"

验证一个ID号码是否由一个2位数字,一个连字符以及一个5位数字组成。

/<(.*)>.*<\/\1>/

"<(.*)>.*<\/\1>"

匹配一个 HTML标记。

 

下表是元字符及其在正则表达式上下文中的行为的一个完整列表:

字符

描述

\

将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。例如,'n'匹配字符 "n"'\n'匹配一个换行符。序列 '\\'匹配 "\" "\("则匹配 "("

^

匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配 '\n' '\r' 之后的位置。

$

匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配 '\n' '\r' 之前的位置。

*

匹配前面的子表达式零次或多次。例如,zo*能匹配 "z"以及 "zoo" *等价于{0,}

+

匹配前面的子表达式一次或多次。例如,'zo+'能匹配 "zo"以及 "zoo",但不能匹配 "z"+等价于 {1,}

?

匹配前面的子表达式零次或一次。例如,"do(es)?"可以匹配 "do" "does" 中的"do"?等价于 {0,1}

{n}

n是一个非负整数。匹配确定的n。例如,'o{2}'不能匹配 "Bob"中的 'o',但是能匹配 "food"中的两个 o

{n,}

n是一个非负整数。至少匹配n。例如,'o{2,}'不能匹配 "Bob" 中的 'o',但能匹配 "foooood"中的所有 o'o{1,}'等价于 'o+''o{0,}'则等价于 'o*'

{n,m}

mn均为非负整数,其中n <=m。最少匹配n次且最多匹配m。刘, "o{1,3}"将匹配 "fooooood"中的前三个 o'o{0,1}'等价于 'o?'。请注意在逗号和两个数之间不能有空格。

?

当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo"'o+?'将匹配单个 "o",而 'o+'将匹配所有 'o'

.

匹配除 "\n"之外的任何单个字符。要匹配包括 '\n'在内的任何字符,请使用象 '[.\n]'的模式。

(pattern)

匹配pattern并获取这一匹配。所获取的匹配可以从产生的 Matches集合得到,在VBScript中使用 SubMatches集合,在Visual Basic Scripting Edition中则使用$0$9属性。要匹配圆括号字符,请使用 '\(' '\)'

(?:pattern)

匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 ""字符 (|)来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies)就是一个比 'industry|industries'更简略的表达式。

(?=pattern)

正向预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如, 'Windows (?=95|98|NT|2000)'能匹配 "Windows 2000"中的 "Windows" ,但不能匹配 "Windows 3.1"中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

(?!pattern)

负向预查,在任何不匹配Negative lookahead matches the search string at any point where a string not matchingpattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)'能匹配 "Windows 3.1"中的 "Windows",但不能匹配 "Windows 2000"中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始

x|y

匹配 x y。例如,'z|food'能匹配 "z" "food"'(z|f)ood'则匹配 "zood" "food"

[xyz]

字符集合。匹配所包含的任意一个字符。例如, '[abc]'可以匹配 "plain"中的 'a'

[^xyz]

负值字符集合。匹配未包含的任意字符。例如, '[^abc]'可以匹配 "plain"中的'p'

[a-z]

字符范围。匹配指定范围内的任意字符。例如,'[a-z]'可以匹配 'a' 'z' 范围内的任意小写字母字符。

[^a-z]

负值字符范围。匹配任何不在指定范围内的任意字符。例如,'[^a-z]'可以匹配任何不在 'a' 'z' 范围内的任意字符。

\b

匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b'可以匹配"never"中的 'er',但不能匹配 "verb"中的 'er'

\B

匹配非单词边界。'er\B'能匹配 "verb"中的 'er',但不能匹配 "never"中的 'er'

\cx

匹配由x指明的控制字符。例如, \cM匹配一个 Control-M或回车符。 x的值必须为 A-Z a-z之一。否则,将 c视为一个原义的 'c' 字符。

\d

匹配一个数字字符。等价于 [0-9]

\D

匹配一个非数字字符。等价于 [^0-9]

\f

匹配一个换页符。等价于 \x0c \cL

\n

匹配一个换行符。等价于 \x0a \cJ

\r

匹配一个回车符。等价于 \x0d \cM

\s

匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]

\S

匹配任何非空白字符。等价于 [^ \f\n\r\t\v]

\t

匹配一个制表符。等价于 \x09 \cI

\v

匹配一个垂直制表符。等价于 \x0b \cK

\w

匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'

\W

匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'

\xn

匹配 n,其中 n为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如, '\x41'匹配 "A"'\x041'则等价于 '\x04' & "1"。正则表达式中可以使用 ASCII编码。.

\num

匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,'(.)\1'匹配两个连续的相同字符。

\n

标识一个八进制转义值或一个后向引用。如果 \n之前至少n个获取的子表达式,则n为后向引用。否则,如果n为八进制数字 (0-7),则n为一个八进制转义值。

\nm

标识一个八进制转义值或一个后向引用。如果 \nm之前至少有is preceded by at leastnm个获取得子表达式,则nm为后向引用。如果 \nm之前至少有n个获取,则n为一个后跟文字m 的后向引用。如果前面的条件都不满足,若 n m均为八进制数字 (0-7),则 \nm将匹配八进制转义值nm

\nml

如果 n 为八进制数字 (0-3),且m l 均为八进制数字 (0-7),则匹配八进制转义值nml

\un

匹配 n,其中 n是一个用四个十六进制数字表示的 Unicode字符。例如, \u00A9匹配版权符号 (?)

------------------------------------


1、数字

function testisNum(object)
                       {
         
                        var s =document.getElementById(object.id).value;
             
                            if(s!="")
                            {
                                 if(isNaN(s))
                                {
                                 alert("请输入数字");
                                 object.value="";
                                 object.focus();
                                }
                            }
                        }


2、电话号码,传真
//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”
            function isTel(object)
            {
            //国家代码(2到3位)-区号(2到3位)-电话号码(7到8位)-分机号(3位)"

             var s =document.getElementById(object.id).value;
             var pattern =/^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/;
             //var pattern =/(^[0-9]{3,4}\-[0-9]{7,8}$)|(^[0-9]{7,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/;
                 if(s!="")
                 {
                     if(!pattern.exec(s))
                     {
                      alert('请输入正确的电话号码:电话号码格式为国家代码(2到3位)-区号(2到3位)-电话号码(7到8位)-分机号(3位)"');
                      object.value="";
                      object.focus();
                     }
                 }
            }


3、邮箱
function Check(object)
          {
        var s =document.getElementById(object.id).value;
             var pattern =/^[a-zA-Z0-9_\-]{1,}@[a-zA-Z0-9_\-]{1,}\.[a-zA-Z0-9_\-.]{1,}$/;
                 if(s!="")
                 {
                     if(!pattern.exec(s))
                     {
                      alert('请输入正确的邮箱地址');
                      object.value="";
                      object.focus();
                     }
                 }
             
 
        }
4、手机号码

//校验手机号码:必须以数字开头,除数字外,可含有“-”
             function isMobile(object)
            {
            var s =document.getElementById(object.id).value;
            var reg0 = /^13\d{5,9}$/;
            var reg1 = /^153\d{4,8}$/;
            var reg2 = /^159\d{4,8}$/;
            var reg3 = /^0\d{10,11}$/;
            var my = false;
            if (reg0.test(s))my=true;
            if (reg1.test(s))my=true;
            if (reg2.test(s))my=true;
            if (reg3.test(s))my=true;
                if(s!="")
                {
                    if (!my)
                    {
                       alert('请输入正确的手机号码');
                       object.value="";
                       object.focus();
                    }
                }
            }

5、邮编
 //校验(国内)邮政编码
            function isPostalCode(object)
            {
             var s =document.getElementById(object.id).value;
             var pattern =/^[0-9]{6}$/;
                 if(s!="")
                 {
                     if(!pattern.exec(s))
                     {
                      alert('请输入正确的邮政编码');
                      object.value="";
                      object.focus();
                     }
                 }
            }

6、日期

//校验日期
            function isdate(object)
            {
             var s =document.getElementById(object.id).value;
             var pattern =/^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$/;
                 if(s!="")
                 {
                     if(!pattern.exec(s))
                     {
                      alert('请输入正确的日期');
                      object.value="";
                      object.focus();
                     }
                 }        
            }


JS 验证时间/url地址/电子邮件

 

//JS验证时间
var statime=stime.val();
      alert(statime);
      var r =/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
         if(!r.test(statime))
         {
         alert("请正确填写时间");stime.focus();return false;
         }


//JS验证url地址:
/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\:+!]*([^<>])*$/;

//JS验证电子邮件
var reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
  if(ipt.val().length<1||!reg.test(ipt.val())){
   alert('请填写正确的邮箱地址');
   ipt.focus();
   return false;
}

 // 校验手机号码:必须以数字开头,除数字外,可含有“-”
              function  isMobile(object)
            {
             var  s  = document.getElementById(object.id).value;
             var  reg0  =   / ^13\d{5,9}$ / ;
             var  reg1  =   / ^153\d{4,8}$ / ;
             var  reg2  =   / ^159\d{4,8}$ / ;
             var  reg3  =   / ^0\d{10,11}$ / ;
             var  my  =   false ;
             if  (reg0.test(s))my = true ;
             if  (reg1.test(s))my = true ;
             if  (reg2.test(s))my = true ;
             if  (reg3.test(s))my = true ;
                 if (s != "" )
                {
                     if  ( ! my)
                    {
                       alert( ' 请输入正确的手机号码 ' );
                       object.value = "" ;
                       object.focus();
                    }
                }
            }

 

// 校验(国内)邮政编码
             function  isPostalCode(object)
            {
              var  s  = document.getElementById(object.id).value;
              var  pattern  = / ^[0-9]{6}$ / ;
                  if (s != "" )
                 {
                      if ( ! pattern.exec(s))
                     {
                      alert( ' 请输入正确的邮政编码 ' );
                      object.value = "" ;
                      object.focus();
                     }
                 }
            }

 

// 校验日期
             function  isdate(object)
            {
              var  s  = document.getElementById(object.id).value;
              var  pattern  = / ^((\d{2}(([02468][048])|([13579][26]))[\-\ / \s] ? (((( 0 ? [ 13578 ]) | ( 1 [ 02 ]))[\ - \ / \s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\ / \s] ? (( 0 ? [ 1 - 9 ]) | ([ 1 - 2 ][ 0 - 9 ]) | ( 30 ))) | ( 0 ? 2 [\ - \ / \s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\ / \s] ? (((( 0 ? [ 13578 ]) | ( 1 [ 02 ]))[\ - \ / \s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\ / \s] ? (( 0 ? [ 1 - 9 ]) | ([ 1 - 2 ][ 0 - 9 ]) | ( 30 ))) | ( 0 ? 2 [\ - \ / \s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$ / ;
                  if (s != "" )
                 {
                      if ( ! pattern.exec(s))
                     {
                      alert( ' 请输入正确的日期 ' );
                      object.value = "" ;
                      object.focus();
                     }
                 }        
            }

 

// 校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”
             function  isTel(object)
            {
             // 国家代码(2到3位)-区号(2到3位)-电话号码(7到8位)-分机号(3位)"

              var  s  = document.getElementById(object.id).value;
              var  pattern  = / ^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$ / ;
              // var pattern =/(^[0-9]{3,4}\-[0-9]{7,8}$)|(^[0-9]{7,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/; 
                  if (s != "" )
                 {
                      if ( ! pattern.exec(s))
                     {
                      alert( ' 请输入正确的电话号码:电话号码格式为国家代码(2到3位)-区号(2到3位)-电话号码(7到8位)-分机号(3位)" ' );
                      object.value = "" ;
                      object.focus();
                     }
                 }
            }


 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

<SCRIPT LANGUAGE="JavaScript">
<!--
function checkIdcard(idcard){
var Errors=new Array(
"验证通过!",
"身份证号码位数不对!",
"身份证号码出生日期超出范围或含有非法字符!",
"身份证号码校验错误!",
"身份证地区非法!"
);
var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江
",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖
北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏
",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
var retflag=false;
var idcard,Y,JYM;
var S,M;
var idcard_array = new Array();
idcard_array = idcard.split("");
//地区检验
if(area[parseInt(idcard.substr(0,2))]==null) return Errors[4];
//身份号码位数及格式检验
switch(idcard.length){
case 15:
if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) %
100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)
(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性
} else {
ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)
(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性
}
if(ereg.test(idcard))
return Errors[0];
else
{
 return Errors[2];
}
break;
case 18:
//18位身份号码检测
//出生日期的合法性检查
//闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-
9]|30)|02(0[1-9]|[1-2][0-9]))
//平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-
9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 &&
parseInt(idcard.substr(6,4))%4 == 0 )){
ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|
(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的
合法性正则表达式
} else {
ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|
(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日
期的合法性正则表达式
}
if(ereg.test(idcard)){//测试出生日期的合法性
//计算校验位
S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
+ parseInt(idcard_array[7]) * 1
+ parseInt(idcard_array[8]) * 6
+ parseInt(idcard_array[9]) * 3 ;
Y = S % 11;
M = "F";
JYM = "10X98765432";
M = JYM.substr(Y,1);//判断校验位
if(M == idcard_array[17]) return Errors[0]; //检测ID的校验位
else return Errors[3];
}
else return Errors[2];
break;
default:
return Errors[1];
break;
}
}
//-->

function check(){
   if(checkIdcard(document.f1.idcard.value)!="验证通过!")
   {
    alert(checkIdcard(document.f1.idcard.value));
    return false;
 }
   
}
</SCRIPT>
<form action="registerSubmit.jsp" name="f1" method="post">
<input name="idcard" type="idcard" class="input1" value="" onkeyup="if(event.keyCode==32)
{alert('请不要输入空格');this.value='';document.form1.Repassword.focus();}">
<input name="Submit22" type="button" class="input9" value="确定" onClick="check(this.f1) ">
</form>

 

js验证身份证号码与出生日期和性别


case 'CompareCodeAndSex':
        var Code=vObj.value;
        var Sex=vCon.value;
        var CodeSex;
       
        if(!vObj.disabled)
        {
            if(!vCon.disabled)
            {
                if(Code!='' && Sex!='')
                {
                   if(Code.length==15)
                   {
                        CodeSex=Code.substr(14,1);
                        if(CodeSex==1)
                        {
                            CodeSex='男';
                        }
                        else
                        {
                            CodeSex='女';
                        }  
                        if(Sex!=CodeSex)
                        {
                            eNum++;
                               vObj.style.color = "red";
                               eMsg+=genErrMsg(eNum,vObj,'身份证与性别不符!');
                        }                    
                   }
                    if(Code.length==18)
                   {
                        CodeSex=Code.substr(16,1);
                        if(CodeSex==1)
                        {
                            CodeSex='男';
                        }
                        else
                        {
                            CodeSex='女';
                        }  
                        if(Sex!=CodeSex)
                        {
                            eNum++;
                               vObj.style.color = "red";
                               eMsg+=genErrMsg(eNum,vObj,'身份证与性别不符!');
                        }                    
                   }
                }
            }
        }
     break;
    case 'CompareCodeAndBirthday':
       var Code=vObj.value;
        var Birthday=vCon.value;
     var Year;
     var ShortYear;
     var Month;
     var Day;
     var BYear;
        if(!vObj.disabled)
        {
            if(!vCon.disabled)
            {
                if(Code!='' && Birthday!='')
                {
                    if(Code.length==15)
        {
         ShortYear=Code.substr(6,2);
         Month=Code.substr(8,2);
         Day=Code.substr(10,2);
         ShortYear=ShortYear+Month+Day;
        
         BYear=Birthday.substr(2,2);
         Month=Birthday.substr(5,2);
         Day=Birthday.substr(8,2);
         BYear=BYear+Month+Day;
         if(ShortYear!=BYear)
            {
             eNum++;
                               vObj.style.color = "red";
                               eMsg+=genErrMsg(eNum,vObj,'身份证与出生日期不符!');
            }
            }
       
        if(Code.length==18)
        {
         Year=Code.substr(6,4);
         Month=Code.substr(10,2);
         Day=Code.substr(12,2);
         Year=Year+Month+Day;
        
         BYear=Birthday.substr(0,4);
         Month=Birthday.substr(5,2);
         Day=Birthday.substr(8,2);
         BYear=BYear+Month+Day;
         if(Year!=BYear)
            {
             eNum++;
                               vObj.style.color = "red";
                               eMsg+=genErrMsg(eNum,vObj,'身份证与出生日期不符!');
            }
        }
    
       
                }
            }
        }
        break;

 

 

1JS正则表达式 代码
"^\\d+$"  //非负整数(正整数 + 0)    
"^[0-9]*[1-9][0-9]*$"  //正整数    
"^((-\\d+)|(0+))$"  //非正整数(负整数 + 0)    
"^-[0-9]*[1-9][0-9]*$"  //负整数    
"^-?\\d+$"    //整数    
"^\\d+(\\.\\d+)?$"  //非负浮点数(正浮点数 + 0)    
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"     
//正浮点数    
"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"  //非正浮点数(负浮点数 + 0)    
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"     
//负浮点数    
"^(-?\\d+)(\\.\\d+)?$"  //浮点数    
"^[A-Za-z]+$"  //由26个英文字母组成的字符串    
"^[A-Z]+$"  //由26个英文字母的大写组成的字符串    
"^[a-z]+$"  //由26个英文字母的小写组成的字符串    
"^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串    
"^\\w+$"  //由数字、26个英文字母或者下划线组成的字符串    
"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"    //email地址    
"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url    
"^[A-Za-z0-9_]*$"
===================================================
<script language="javascript">
function check(){
//var pattern1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;//15位的身份证
//var pattern2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;//18位的身份证
var pattern=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;//匹配E-MALI地址
//var pattern=/^http:\/\/([\w-]+\.)+[\w-]+(\/[\w-      .\/?%&=]*)?/;//匹配网址
//var pattern=/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/;//匹配网址
//var pattern=/^[\u4e00-\u9fa5]$/;//匹配中文字符(单个汉字)
//var pattern=/^[1-9]\d{5}(?!\d)$/;//匹配邮政编码
//var pattern=/^[1-2][0-9][0-9][0-9]-[0-1]{0,1}[0-9]-[0-3]{0,1}[0-9]$/;//匹配日期 如:1900-01-01
//var pattern=/^[^\x00-\xff]$/;//匹配双字节字符(包括汉字在内的单个字符)
//var pattern=/^<(.*)>.*<\/\1>|<(.*) \/>$/;//匹配HTML标记
//var pattern=/<(\S*?)[^>]*>.*?<\/\1>|<.*? \/>/;//匹配HTML标记
//var pattern=/^\n[\s| ]*\r$/;//可以用来删除空白行
//var pattern=/^(\s*)|(\s*)$///可以用来删除行首尾的空白字符(包括空格、制表符、换页符等等)
//var pattern=/^[a-zA-Z][a-zA-Z0-9_]{4,15}$/;//字母开头,限制5-16字节,允许字母数字下划线
//var pattern=/^\d{3}-\d{8}|\d{4}-\d{7,8}$/;//匹配国内电话 如:0739-8888888(8) 或 020-88888888
//var pattern=/^[1-9][0-9]{4,}$/;//匹配QQ号码 腾讯QQ号从10000开始
//var pattern=/^\d+\.\d+\.\d+\.\d+$/;//匹配IP地址
/*******************匹配特定数字*********************/
//var pattern=/^(\w)\1{4,}*$/;//匹配整数
//var pattern=/-?[1-9]\d*$/;//匹配整数
//var pattern=/^[1-9]\d*$/;//匹配正整数
//var pattern=/^-[1-9]\d*$/;//匹配负整数
//var pattern=/^[1-9]\d*|0$/;//匹配非负整数
//var pattern=/^-[1-9]\d*|0$/;//匹配非正整数
//var pattern=/^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$/;//匹配正浮点数
//var pattern=/^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$/;//匹配负浮点数
//var pattern=/^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$/;//匹配浮点数
//var pattern=/^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$/;//匹配非负浮点数
//var pattern=/^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$/;//匹配非正浮点数
/********************匹配特定字符串*****************/
//var pattern=/^[A-Za-z]+$/;//匹配由26个英文字母组成的字符串
//var pattern=/^[A-Z]+$/;//匹配由26个英文字母的大写组成的字符串
//var pattern=/^[a-z]+$/;//匹配由26个英文字母的小写组成的字符串
//var pattern=/^[A-Za-z0-9]+$/;//匹配由数字和26个英文字母组成的字符串
//var pattern=/^\w+$/;//匹配由数字、26个英文字母或者下划线组成的字符串
//if(!(pattern1.test(document.form1.text.value)||pattern2.test(document.form1.text.value)))
if(!pattern.test(document.getElementById("content").value)){
alert("请输入正确的格式!");
return false;
}
}
</script>
<%
'限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
'限制只能输入全角字符:onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
'限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
'限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
%>

===================================================
/*
*前台JS表单脚本(输入&验证)库

*注:请使用本JS表单脚本(输入&验证)库的同时保留此版权信息,此是作者花了时间去收集整理以及编写的,谢谢!
*  此版本采用GB2312编码格式,请在使用前进行字符编码转换,以保证能够正常使用
*/
/*
*以下是库函数目录及使用说明:
*
*常用
*1、Trim=去除字符串前后空格        
使用方法:String.trim()
*2、ctrim=去除字符串中间空格        
使用方法:String.ctrim()
*3、onClickSelect=点中text框的时候,选中其中的文字    
使用方法:在input位置加上 onClick/onFocus="onClickSelect();" 即可

*
*动态输入类            
使用方法:在input位置加上 即可
*1、TextOnly=只允许输入字母、数字、下划线
*2、TextNumOnly=只允许输入字母、数字
*3、NumOnly=只允许输入数字
*4、TelOnly=只能输入电话、"-"、"("、")"
*
*表单验证类
*1、isAccount=是否帐号(由字母、数字、下划线组成){有两种选择,一种有长度限制}
*2、isChinese=是否中文(由中文、数字、字母组成)
*3、ismail=是否Email
*4、isip=是否ip
*5、PhoneCheck=电话号码检测(电话和手机)
*6、isMobile=手机号码检测
*7、isDate=是否短日期
*8、isTime=是否时间
*9、isDateTime=是否长日期
*
*其它函数
*1、changeFrame=改变Frame大小
*2、CheckAll=全选/全不选
*3、onKeyDownDefault=回车->转->Tab
*4、admin_Size=改变TextArea输入框高度
*
*其它验证正则表达式
*Email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
*Phone : /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/
*Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/
*Currency : /^\d+(\.\d+)?$/
*Number : /^\d+$/
*Zip : /^[1-9]\d{5}$/
*QQ : /^[1-9]\d{4,8}$/
*Integer : /^[-\+]?\d+$/
*Double : /^[-\+]?\d+(\.\d+)?$/
*English : /^[A-Za-z]+$/
*Chinese :  /^[\u0391-\uFFE5]+$/
*UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/
*Username : /^[a-z]\w{3,}$/i(用户名验证,带长度限制)
*/

//========================================================================常用函数
//--------------------------------除去前后空格
String.prototype.trim = function()
{
    //用正则表达式将前后空格用空字符串替代。
    return this.replace(/(^\s*)|(\s*$)/g, "");
}
//--------------------------------除去中间空格
String.prototype.ctrim = function()
{
    //用正则表达式将中间空格用空字符串替代。
return this.replace(/\s/g,'');
}
//--------------------------------点中text框的时候,选中其中的文字
/**
*方法名:onClickSelect
*描述:点中text框的时候,选中其中的文字
*输入:空
*输出:空
**/
function onClickSelect()
{
    var obj = document.activeElement;
    if(obj.tagName == "TEXTAREA")
{
        obj.select();
}
    if(obj.tagName == "INPUT" )
{
        if(obj.type == "text")
   obj.select();
}
}

/*
* 判断是否为数字,是则返回true,否则返回false
*/
代码
function f_check_number(obj)    
{          
    if (/^\d+$/.test(obj.value))    
    {    
       return true;    
    }    
    else    
    {    
       f_alert(obj,"请输入数字");    
       return false;    
    }    
}    
  
/*
* 判断是否为自然数,是则返回true,否则返回false
*/
代码
function f_check_naturalnumber(obj)    
{          
    var s = obj.value;    
    if (/^[0-9]+$/.test( s ) && (s > 0))    
    {    
       return true;    
    }    
    else    
    {    
        f_alert(obj,"请输入自然数");    
        return false;    
    }    
}    
  
/*
* 判断是否为整数,是则返回true,否则返回false
*/
代码
function f_check_integer(obj)    
{          
    if (/^(\+|-)?\d+$/.test( obj.value ))    
    {    
       return true;    
    }    
    else    
    {    
        f_alert(obj,"请输入整数");    
        return false;    
    }    
}    
  
/*
* 判断是否为实数,是则返回true,否则返回false
*/
代码
function f_check_float(obj)    
{          
    if (/^(\+|-)?\d+($|\.\d+$)/.test( obj.value ))    
    {    
       return true;    
    }    
    else    
    {    
        f_alert(obj,"请输入实数");    
       return false;    
    }    
}    

 

 

 

 


//========================================================================动态输入类函数
//--------------------------------只允许输入字母、数字、下划线(动态判断)
function TextOnly(){
    var i= window.event.keyCode
//8=backspace
//9=tab
//37=left arrow
//39=right arrow
//46=delete
//48~57=0~9
//97~122=a~z
//65~90=A~Z
//95=_
    if (!((i<=57 && i>=48)||(i>=97 && i<=122)||(i>=65 && i<=90)||(i==95)||(i==8)||(i==9)||(i==37)||(i==39)||(i==46)))
{
        //window.event.keyCode=27;
  event.returnValue=false
  return false;
    }
else
{
        //window.event.keyCode=keycode;
  return true;
    }
}
//--------------------------------只允许输入字母、数字(动态判断)
function TextNumOnly(){
    var i= window.event.keyCode
//8=backspace
//9=tab
//37=left arrow
//39=right arrow
//46=delete
//48~57=0~9
//97~122=a~z
//65~90=A~Z
//95=_
    if (!((i<=57 && i>=48)||(i>=97 && i<=122)||(i>=65 && i<=90)||(i==8)||(i==9)||(i==37)||(i==39)||(i==46)))
{
        //window.event.keyCode=27;
  event.returnValue=false
  return false;
    }
else
{
        //window.event.keyCode=keycode;
  return true;
    }
}
//--------------------------------只允许输入数字(动态判断)
/**
*方法名:NumOnly()
*描述:只允许输入数字
*输入:空
*输出:空
**/
function NumOnly(){
    var i= window.event.keyCode
//8=backspace
//9=tab
//37=left arrow
//39=right arrow
//46=delete
//48~57=0~9
    if ((i>57 || i<48) && (i!=8) && (i!=9) && (i!= 37) && (i!=39) && (i!=46))
{
        window.event.keyCode=27;
  return false;
    }
else
{
        //window.event.keyCode=keycode;
  return true;
    }
}
//--------------------------------只能输入电话号码或者"-"或者"("或者")"
function TelOnly(){
    var i= window.event.keyCode
//8=backspace
//9=tab
//37=left arrow
//39=right arrow
//46=delete
//48~57=0~9
//40=(
//41=)
//45=-
//32=空格
    if ((i>57 || i<48) && (i!=8) && (i!=9) && (i!= 37) && (i!=39) && (i!=46) && (i!=40) && (i!=41) && (i!=45) && (i!=32))
{
        window.event.keyCode=27;
  return false;
    }
else
{
        //window.event.keyCode=keycode;
  return true;
    }
}
//========================================================================动态输入函数(结束)

//========================================================================表单验证函数
//--------------------------------判断用户名(判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母)
function isAccount(str)
{
if(/^[a-z]\w{3,}$/i.test(str))   //用户名由字母和数字、下划线组成,且只能以字母开头,且长度最小为4位
//if(/^([a-zA-z]{1})([\w]*)$/g.test(str))//用户名由字母和数字、下划线组成,且只能以字母开头
{
  //alert(');
  return true;
}
else
  return false;
}
//--------------------------------判断只能输入中文、数字、字母
function isChinese(str)
{
var pattern = /^[0-9a-zA-Z\u4e00-\u9fa5]+$/i;
if (pattern.test(str))
{
  return true;
}
else
{
  //alert("只能包含中文、字母、数字");
  return false;
}
}
//--------------------------------Email格式判断
function ismail(email)
{
return(new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(email));
}
//--------------------------------IP格式判断
function isip(s)
{
var check=function(v)
{
  try
  {
   return (v<=255 && v>=0)
  }
  catch(x)
  {
   return false
  }
};
var re=s.split(".")
return (re.length==4)?(check(re[0]) && check(re[1]) && check(re[2]) &&
}
//--------------------------------判断电话号码/手机号码
function PhoneCheck(s)
{
var str=s;
var reg=/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/;
//alert(reg.test(str));
return reg.test(str);
}
//--------------------------------判断手机号码
function isMobile(str)
{      
var reg=/^0{0,1}13[0-9]{9}$/;
return reg.test(str);
}
//--------------------------------短日期(如2003-12-05)
function isDate(str)
{
var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null)
{
  //alert('输入的信息不是日期格式(YYYY:MM:DD)');
  return false;
}
if (r[1]<1 || r[3]<1 || r[3]-1>12 || r[4]<1 || r[4]>31)
{
  //alert("日期格式(YYYY:MM:DD)不对");
  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]);
}
var a =
if (a == null)
{
  //alert('输入的信息不是时间格式(HH:MM:SS)');
  return false;
}
if (a[1]>23 || a[1]<0 || a[3]>60 || a[3]<0 || a[4]>60 || a[4]<0)
{
  //alert("时间格式(0<=HH<23:0<=MM<60:0<=SS<60)不对");
  return false
}
return true;
}

var reg =
var r = str.match(reg);
if(r==null)
{
  //alert('输入的信息不是时间格式(YYYY-MM-DD
  return false;
}
var d= new Date(r[1], r[3]-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]);
}

//========================================================================表单验证函数(结束)
//========================================================================其它函数
//用于改变当前后台框架的尺寸(参数:对象,关闭时显示图片,打开时显示图片,关闭显示尺寸,打开显示尺寸)
//       例:this,'../images/openout.gif','../images/setby.gif','top.frame.cols=\'0,*\'','top.frame.cols=\'150,*\''
function changeFrame(ob,s1,s2,evalString1,evalString2)
{
if (ob.alt == "收起")
{
  ob.alt = "展开";
  ob.src = s1;
  eval(evalString1);
}
else
{
  ob.alt = "收起";
  ob.src = s2;
  eval(evalString2);
}
}
//用于全选/全不选(参数form=表单)
function CheckAll(form)    
{
  for (var i=0;i<form.length;i++)    
    {    
  var e = form;
  if (e.type=="checkbox")
  {
   if (e.name!="AllChoice")
   {
    if (form.AllChoice.checked==true)
    {
     if (e.disabled==false) e.checked=true;
    }
    else
    {
     if (e.disabled==false) e.checked=false;
    }
   }
  }
    }    
}
//--------------------------------用户在button以外的页面元素中按回车-->转换-->按tab键
/**
*方法名:onKeyDownDefault
*描述:用户在button以外的页面元素中按回车,转换为按tab键
*输入:空
*输出:空
**/
function onKeyDownDefault()
{
    if (window.event.keyCode == 13 && window.event.ctrlKey == false && window.event.altKey == false){
        if (window.event.srcElement.type != "button")
            window.event.keyCode = 9;
    }
    else{
        return true;
    }
}
// 修改编辑栏高度
function admin_Size(num,objname)
{
var obj=document.getElementById(objname)
if (parseInt(obj.rows)+num>=3) {
  obj.rows = parseInt(obj.rows) + num;
}
if (num>0)
{
  obj.width="90%";
}
}
//取得字符串中中文/汉字的个数
function getChineseNum(obstring)
{
var pattern = /^[\u4e00-\u9fa5]+$/i;
var maxL,minL;
maxL = obstring.length;    //原始长度
obstring = obstring.replace(pattern,"");
minL = obstring.length;    //处理后的长度
return (maxL - minL)
}
//========================================================================其它函数(结束)

 

 

 

验证 是否是 数字

<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<script language="JavaScript">
function check(formname){
if (isNaN(document.all['price'].value)){
alert('请输入数字');
document.all["price"].focus();
return false;
}
else{
if(document.all["price"].value !="")
{
      alert('是数字,通过');
       return true;
}
else
{
    alert('空直,');
       return true;
}
  }
}
</script>
<form method="post" action="">
  <input type="text" >
  <input type="submit" value="提交" >
  <input type ="text" />
</form>
</body>
</html>

 



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值