首页 » JavaScript » javascript中的正则表达式

javascript中的正则表达式

原文 http://blog.csdn.net/chenyao1994/article/details/79053359

2018-01-14 02:00:06阅读(243)

1.正则表达式 整数
^[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)

2.另外一个版本
"^(([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 
/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日 
/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // 月/日/年 
"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" //Emil 
"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?" //电话号码 
"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$" //IP地址 

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-))$

C#正则表达式 
图片 src[^>]*[^/].(?:jpg|bmp|gif)(?:\"|\') 
中文 ^([\u4e00-\u9fa5]+|[a-zA-Z0-9]+)$ 
网址 "\<a.+?href=['""](?!http\:\/\/)(?!mailto\:)(?>foundAnchor>[^'"">]+?)[^>]*?\>" 

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

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

匹配空行的正则表达式:\n[\s| ]*\r 

匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/ 

匹配首尾空格的正则表达式:(^\s*)|(\s*$)(像vbscript那样的trim函数) 

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 

匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)? 
--------------------------------------------------------------------------- 
以下是例子: 

利用正则表达式限制网页表单里的文本框输入内容: 

用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))" 

1.用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))" 

2.用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" 

3.用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" 

4.计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 

String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;} 

5.javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下: 

String.prototype.trim = function() 

return this.replace(/(^\s*)|(\s*$)/g, ""); 


利用正则表达式分解和转换IP地址: 

6.下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序: 

function IP2V(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("不是一个正确的IP地址!") 



不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下: 

var ip="10.100.20.168" 
ip=ip.split(".") 
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))

3.这位博友很细心把html代码也贴出来了

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
<html xmlns="http://www.w3.org/1999/xhtml">   
<head>   
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
<title>Test</title>   
<script type="text/javascript" language="javascript" src="jquery.js"></script>   
<script type="text/javascript" language="javascript" >   
    function validata(){   
        if($("#username").val()==""){   
            document.write("请输入名字");               
            return false;   
        }   
        if($("#password").val()==""){   
            document.write("请输入密码");   
            return false;   
        }          
        if($("#telephone").val()==""){   
            document.write("请输入电话号码");   
        }   
        if($("#email").val()==""){   
            $("#email").val("shuangping@163.com");   
        }   
    }      
       
    function isInteger(obj){   
           
        reg=/^[-+]?\d+$/;    
        if(!reg.test(obj)){   
            $("#test").html("<b>Please input correct figures</b>");   
        }else{   
            $("#test").html("");   
        }   
    }   
    function isEmail(obj){   
        reg=/^\w{3,}@\w+(\.\w+)+$/;   
        if(!reg.test(obj)){        
            $("#test").html("<b>请输入正确的邮箱地址</b>");   
        }else{   
            $("#test").html("");   
        }   
    }   
    function isString(obj){   
        reg=/^[a-z,A-Z]+$/;   
        if(!reg.test(obj)){   
            $("#test").html("<b>只能输入字符</b>");   
        }else{   
            $("#test").html("");   
        }   
    }   
    function isTelephone(obj){   
        reg=/^(\d{3,4}\-)?[1-9]\d{6,7}$/;   
        if(!reg.test(obj)){   
            $("#test").html("<b>请输入正确的电话号码!</b>");   
        }else{   
            $("#test").html("");   
        }   
    }   
    function isMobile(obj){   
        reg=/^(\+\d{2,3}\-)?\d{11}$/;   
        if(!reg.test(obj)){   
            $("#test").html("请输入正确移动电话");   
        }else{   
            $("#test").html("");   
        }   
    }   
    function isUri(obj){   
        reg=/^http:\/\/[a-zA-Z0-9]+\.[a-zA-Z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/;   
        if(!reg.test(obj)){   
            $("#test").html($("#uri").val()+"请输入正确的inernet地址");   
        }else{   
            $("#test").html("");   
        }   
    }   
       
    //document加载完毕执行   
    $(document).ready(function() {   
    // do something here   
       
    //隔行换色功能   
    $("p").each(function(i){   
        this.style.color=['red','green','blue','black'][i%2]   
        });   
       
    //eq(2)获取$("p")集合的第3个元素    
    $("p").eq(2).click(function(){$("#display").css("color","blue")});   
       
    //所有test中的p都附加了样式"over"。   
    $("#test>p").addClass("over");   
       
    //test中的最后一个p附加了样式"out"。   
    $("#test p:last").addClass("out");   
       
    //选择同级元素还没看懂   
    //$('#faq').find('dd').hide().end().find('dt').click(function()    
       
    //选择父级元素   
    $("a").hover(   
                function(){$(this).parents("p").addClass("out")},   
                function(){$(this).parents("p").removeClass("out")})   
       
       
    //hover鼠标悬停效果,toggle每次点击时切换要调用的函数  ,   
    //trigger(eventtype): 在每一个匹配的元素上触发某类事件,   
    //bind(eventtype,fn),unbind(eventtype): 事件的绑定与反绑定从每一个匹配的元素中(添加)删除绑定的事件。   
  
    //方法的连写   
    $("#display").hover(function(){   
            $(this).addClass("over");   
        },function(){   
            $(this).removeClass("over");    
        })   
        .click(function(){alert($("#display").text())});   
           
    if($.browser.msie){//判断浏览器,若是ie则执行下面的功能   
           
        //聚焦   
        $("input[@type=text],textarea,input[@type=password]")   
        .focus(function(){$(this).css({background:"white",border:"1px solid blue"})})   
        //也可以这样连着写,   
        //.blur(function(){$(this).css({background:"white",border:"1px solid black"})})   
           
        //失去焦点   
        //css样式可以通过addClass()来添加   
        $("input[@type=text],textarea,input[@type=password]")   
        .blur(function(){$(this).css({background:"white",border:"1px solid black"});});   
    }   
    });    
</script>   
<style type="text/css">   
.over{   
    font-size:large;   
    font-style:italic;   
}   
.out{   
    font-size:small;   
}          
</style>   
</head>   
  
<body >   
<div id="display">demo</div>   
<div id="test">   
    <p>adfa<a>dfasfa</a>sdfasdf</p>   
    <p>adfadfasfasdfasdf</p>   
    <p>adfadfasfasdfasdf</p>       
    <p>adfadfasfasdfasdf</p>   
</div>   
<form id="theForm">   
    isString<div><input type="text" id="username" onblur="isString(this.value)"/></div>   
    isInteger<div><input type="text" id="password" onblur="isInteger(this.value)"/></div>   
    isTelephone<div><input type="text" id="telephone" onblur="isTelephone(this.value)"/></div>   
    isMobile<div><input type="text" id="mobile" onblur="isMobile(this.value)"/></div>   
    isEmail<div><input type="text" id="email" onblur="isEmail(this.value)"/></div>   
    isUri<div><input type="text" id="uri" onblur="isUri(this.value)"/></div>   
    <div><input type="button" value="Validata" onclick="return validata();"  /></div>   
</form>   
</body>   
</html>

 

 4. 用JS jquery取float型小数点后两位
1. 最笨的办法
function get()
{
    var s = 22.127456 + “”;
    var str = s.substring(0,s.indexOf(“.”) + 3);
    alert(str);
}


2. 正则表达式效果不错
<scrīpt type=”text/javascrīpt”> 
    onload = function(){     
 var a = “23.456322″;
     var aNew;
    var re = /([0-9]+\.[0-9]{2})[0-9]*/;
    aNew = a.replace(re,”$1″);
     alert(aNew);
    } 
</scrīpt>

3. 他就比较聪明了…..
<scrīpt> 
var num=22.127456; alert( Math.round(num*100)/100); 
</scrīpt>

4.会用新鲜东西的朋友……. 但是需要 IE5.5+才支持。 
<scrīpt> 
var num=22.127456; alert( num.toFixed(2)); 
</scrīpt>

参考链接:

http://www.cnblogs.com/freexiaoyu/archive/2008/12/17/1356690.html

http://www.cnblogs.com/qyz123/archive/2007/05/12/743537.html

http://www.cnblogs.com/luluping/archive/2008/05/04/1181434.html

 

关键字:js验证表单大全,用JS控制表单提交 ,javascript提交表单:
目录:
1:js 字符串长度限制、判断字符长度 、js限制输入、限制不能输入、textarea 长度限制
2.:js判断汉字、判断是否汉字 、只能输入汉字
3:js判断是否输入英文、只能输入英文
4:js只能输入数字,判断数字、验证数字、检测数字、判断是否为数字、只能输入数字
5:只能输入英文字符和数字
6: js email验证 、js 判断email 、信箱/邮箱格式验证
7:js字符过滤,屏蔽关键字
8:js密码验证、判断密码
2.1: js 不为空、为空或不是对象 、判断为空 、判断不为空
2.2:比较两个表单项的值是否相同
2.3:表单只能为数字和"_",
2.4:表单项输入数值/长度限定
2.5:中文/英文/数字/邮件地址合法性判断
2.6:限定表单项不能输入的字符
2.7表单的自符控制
2.8:form文本域的通用校验函数

1. 长度限制
<script>
function test()
{
if(document.a.b.value.length>50)
{
alert("不能超过50个字符!");
document.a.b.focus();
return false;
}
}
</script>
<form name=a onsubmit="return test()">
<textarea name="b" cols="40" wrap="VIRTUAL" rows="6"></textarea>
<input type="submit" name="Submit" value="check">
</form>

2. 只能是汉字
<input onkeyup="value="/oblog/value.replace(/[^\u4E00-\u9FA5]/g,'')">

3." 只能是英文
<script language=javascript>
function onlyEng()
{
if(!(event.keyCode>=65&&event.keyCode<=90))
event.returnvalue=false;
}
</script>

<input onkeydown="onlyEng();">

4. 只能是数字
<script language=javascript>
function onlyNum()
{
if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
//考虑小键盘上的数字键
event.returnvalue=false;
}
</script>

<input onkeydown="onlyNum();">

5. 只能是英文字符和数字
<input onkeyup="value="/oblog/value.replace(/[\W]/g,"'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">

6. 验证油箱格式
<SCRIPT LANGUAGE=javascript RUNAT=Server>
function isEmail(strEmail) {
if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
return true;
else

alert("oh");
}
</SCRIPT>
<input type=text onblur=isEmail(this.value)>

7. 屏蔽关键字(这里屏蔽***和****)
<script language="javascript1.2">
function test() {
if((a.b.value.indexOf ("***") == 0)||(a.b.value.indexOf ("****") == 0)){
alert(":)");
a.b.focus();
return false;}
}
</script>
<form name=a onsubmit="return test()">
<input type=text name=b>
<input type="submit" name="Submit" value="check">
</form>

8. 两次输入密码是否相同
<FORM METHOD=POST ACTION="">
<input type="password" id="input1">
<input type="password" id="input2">
<input type="button" value="test" onclick="check()">
</FORM>
<script>
function check()
{
with(document.all){
if(input1.value!=input2.value)
{
alert("false")
input1.value = "";
input2.value = "";
}
else document.forms[0].submit();

}
}
</script>
够了吧 :)
屏蔽右键 很酷
oncontextmenu="return false" ondragstart="return false" onselectstart="return false"
加在body中


2.1   表单项不能为空

<script   language="javascript">
<!--
function   CheckForm()
{  
if   (document.form.name.value.length   ==   0)   {  
alert("请输入您姓名!");
document.form.name.focus();
return   false;
}
return   true;
}
-->
</script>

2.2   比较两个表单项的值是否相同

<script   language="javascript">
<!--
function   CheckForm()
if   (document.form.PWD.value   !=   document.form.PWD_Again.value)   {  
alert("您两次输入的密码不一样!请重新输入.");
document.ADDUser.PWD.focus();
return   false;
}

return   true;
}
-->
</script>

2.3   表单项只能为数字和"_",用于电话/银行帐号验证上,可扩展到域名注册等

<script   language="javascript">
<!--
function   isNumber(String)
{  
var   Letters   =   "1234567890-";   //可以自己增加可输入值
var   i;
var   c;
if(String.charAt(   0   )=='-')
return   false;
if(   String.charAt(   String.length   -   1   )   ==   '-'   )
return   false;
for(   i   =   0;   i   <   String.length;   i   ++   )
{  
c   =   String.charAt(   i   );
if   (Letters.indexOf(   c   )   <   0)
return   false;
}
return   true;
}
function   CheckForm()
{  
if(!   isNumber(document.form.TEL.value))   {  
alert("您的电话号码不合法!");
document.form.TEL.focus();
return   false;
}
return   true;
}
-->

</script>


2.4   表单项输入数值/长度限定

<script   language="javascript">
<!--
function   CheckForm()  
{  
if   (document.form.count.value   >   100   ||   document.form.count.value   <   1)
{  
alert("输入数值不能小于零大于100!");
document.form.count.focus();
return   false;
}
if   (document.form.MESSAGE.value.length<10)
{  
alert("输入文字小于10!");
document.form.MESSAGE.focus();
return   false;
}
return   true;
}
//-->
</script>

2.5   中文/英文/数字/邮件地址合法性判断

<SCRIPT   LANGUAGE="javascript">
<!--

function   isEnglish(name)   //英文值检测
{  
if(name.length   ==   0)
return   false;
for(i   =   0;   i   <   name.length;   i++)   {  
if(name.charCodeAt(i)   >   128)

return   false;
}
return   true;
}

function   isChinese(name)   //中文值检测
{  
if(name.length   ==   0)
return   false;
for(i   =   0;   i   <   name.length;   i++)   {  
if(name.charCodeAt(i)   >   128)
return   true;
}
return   false;
}

function   isMail(name)   //   E-mail值检测
{  
if(!   isEnglish(name))
return   false;
i   =   name.indexOf("   at   ");
j   =   name   dot   lastIndexOf("   at   ");
if(i   ==   -1)
return   false;
if(i   !=   j)
return   false;
if(i   ==   name   dot   length)
return   false;
return   true;
}

function   isNumber(name)   //数值检测
{  
if(name.length   ==   0)
return   false;
for(i   =   0;   i   <   name.length;   i++)   {

if(name.charAt(i)   <   "0"   ||   name.charAt(i)   >   "9")
return   false;
}
return   true;
}

function   CheckForm()
{  
if(!   isMail(form.Email.value))   {  
alert("您的电子邮件不合法!");
form.Email.focus();
return   false;
}
if(!   isEnglish(form.name.value))   {  
alert("英文名不合法!");
form.name.focus();
return   false;
}
if(!   isChinese(form.cnname.value))   {  
alert("中文名不合法!");
form.cnname.focus();
return   false;
}
if(!   isNumber(form.PublicZipCode.value))   {  
alert("邮政编码不合法!");
form.PublicZipCode.focus();
return   false;
}
return   true;
}
//-->
</SCRIPT>

2.6   限定表单项不能输入的字符

<script   language="javascript">

<!--

function   contain(str,charset)//   字符串包含测试函数
{  
var   i;
for(i=0;i<charset.length;i++)
if(str.indexOf(charset.charAt(i))>=0)
return   true;
return   false;
}

function   CheckForm()
{  
if   ((contain(document.form.NAME.value,   "%\(\)><"))   ||   (contain(document.form.MESSAGE.value,   "%\(\)><")))
{  
alert("输入了非法字符");
document.form.NAME.focus();
return   false;
}
return   true;
}
//-->
</script> 

1. 检查一段字符串是否全由数字组成       
---------------------------------------       
<script language="Javascript"><!--           
function checkNum(str){return str.match(/\D/)==null}           
alert(checkNum("1232142141"))           
alert(checkNum("123214214a1"))           
// --></script>         
      
2. 怎么判断是否是字符         
---------------------------------------       
if (/[^\x00-\xff]/g.test(s)) alert("含有汉字");          
else alert("全是字符");

4. 邮箱格式验证    
---------------------------------------      
//函数名:chkemail     
//功能介绍:检查是否为Email Address     
//参数说明:要检查的字符串     
//返回值:0:不是 1:是     
function chkemail(a)     
{ var i=a.length;     
var temp = a.indexOf('@');     
var tempd = a.indexOf('.');     
if (temp > 1) {     
if ((i-temp) > 3){     
if ((i-tempd)>0){     
return 1;     
}     
    
}     
}     
return 0;     
}     
    
5. 数字格式验证    
---------------------------------------      
//函数名:fucCheckNUM     
//功能介绍:检查是否为数字     
//参数说明:要检查的数字     
//返回值:1为是数字,0为不是数字     
function fucCheckNUM(NUM)     
{     
var i,j,strTemp;     
strTemp="0123456789";     
if ( NUM.length== 0)     
return 0     
for (i=0;i<NUM.length;i++)     
{     
j=strTemp.indexOf(NUM.charAt(i));

if (j==-1)     
{     
//说明有字符不是数字     
return 0;     
}     
}     
//说明是数字     
return 1;     
}     
    
6. 电话号码格式验证    
---------------------------------------      
//函数名:fucCheckTEL     
//功能介绍:检查是否为电话号码     
//参数说明:要检查的字符串     
//返回值:1为是合法,0为不合法     
function fucCheckTEL(TEL)     
{     
var i,j,strTemp;     
strTemp="0123456789-()# ";     
for (i=0;i<TEL.length;i++)     
{     
j=strTemp.indexOf(TEL.charAt(i));     
if (j==-1)     
{     
//说明有字符不合法     
return 0;     
}     
}     
//说明合法     
return 1;     
}    
   
7. 判断输入是否为中文的函数   
---------------------------------------      
function ischinese(s){

var ret=true;   
for(var i=0;i<s.length;i++)   
ret=ret && (s.charCodeAt(i)>=10000);   
return ret;   
}    
   
8. 综合的判断用户输入的合法性的函数  
---------------------------------------      
<script language="javascript">  
//限制输入字符的位数开始  
//m是用户输入,n是要限制的位数  
function issmall(m,n)  
{  
if ((m<n) && (m>0))  
   {  
   return(false);  
   }  
else  
{return(true);}  
}  
  
9. 判断密码是否输入一致  
---------------------------------------      
function issame(str1,str2)  
{  
if (str1==str2)  
{return(true);}  
else  
{return(false);}  
}  
  
10. 判断用户名是否为数字字母下滑线
---------------------------------------      
function notchinese(str){
var reg=/[^A-Za-z0-9_]/g
     if (reg.test(str)){

return (false);
     }else{
return(true);     }
}

 

11.验证手机号

    function validatemobile(mobile)
    {
        if(mobile.length==0)
        {
           alert('请输入手机号码!');
           document.form1.mobile.focus();
           return false;
        }    
        if(mobile.length!=11)
        {
            alert('请输入有效的手机号码!');
            document.form1.mobile.focus();
            return false;
        }
        
        var myreg = /^(((13[0-9]{1})|159|153)+\d{8})$/;
        if(!myreg.test(mobile))
        {
            alert('请输入有效的手机号码!');
            document.form1.mobile.focus();
            return false;
        }
    }

或者

if(!/^(13[0-9]|14[0-9]|15[0-9]|18[0-9])\d{8}$/i.test(mobile))

或者

代码如下:
function Checkreg()
{
//验证电话号码手机号码,包含153,159号段
if (document.form.phone.value=="" && document.form.UserMobile.value==""){
alert("电话号码和手机号码至少选填一个阿!");
document.form.phone.focus();
return false;
}
if (document.form.phone.value != ""){
var phone=document.form.phone.value;
var p1 = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/;
var me = false;
if (p1.test(phone))me=true;
if (!me){
document.form.phone.value='';
alert('对不起,您输入的电话号码有错误。区号和电话号码之间请用-分割');
document.form.phone.focus();
return false;
}
}
if (document.form.UserMobile.value != ""){
var mobile=document.form.UserMobile.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(mobile))my=true;
if (reg1.test(mobile))my=true;
if (reg2.test(mobile))my=true;
if (reg3.test(mobile))my=true;
if (!my){
document.form.UserMobile.value='';
alert('对不起,您输入的手机或小灵通号码有错误。');
document.form.UserMobile.focus();
return false;
}
return true;
}
}

说明
test方法检查在字符串中是否存在一个模式,如果存在则返回 true,否则就返回 false。

正则表达式部分:
\d 代表一个数字
{7,8} 代表7-8位数字(表示电话号码)
{3,} 代表分机号码
d{2,3} 代表区号
\+]\d{2,3} 代表国际区号
^13\d{5,9}$/ //130?139。至少5位,最多9位
/^153\d{4,8}$/ //联通153。至少4位,最多8位
/^159\d{4,8}$/ //移动159。至少4位,最多8位

第二个:
复制代码 代码如下:

var Mobile = $("#varMobilePhone").val();
var Phone = $("#varPhoneNo").val();
if (Mobile == ""&&Phone == "")
{
alert("手机和固话,请至少填写一项联系方式!");
$("#varMobilePhone").focus();
return;
}
if(Mobile!="")
{
if(!isMobil(Mobile))
{
alert("请输入正确的手机号码!");
$("#varMobilePhone").focus();
return; }
}
//手机号码验证信息
function isMobil(s)
{
var patrn = /(^0{0,1}1[3|4|5|6|7|8|9][0-9]{9}$)/;
if (!patrn.exec(s))
{
return false;
} return true; }
后台验证如下:
if (model.Zip != null)
{
if (!Common.PageValidate.IsValidate(model.Zip,"^\\d{6}$"))
{ Common.WebMessage.showMsg(HttpContext.Current, "请输入正确邮编");
return;
}
}
if (model.PhoneNo != null)
{
if (!Common.PageValidate.IsValidate(model.PhoneNo, "\\d{3}-\\d{8}|\\d{4}-\\d{7}"))
{
Common.WebMessage.showMsg(HttpContext.Current, "请输入正确的电话号码!");
return;
}
}
if (model.MobilePhone != null)
{
if (!Common.PageValidate.IsValidate(model.MobilePhone, "^0{0,1}(13[0-9]|15[3-9]|15[0-2]|18[0-9])[0-9]{8}$"))
{
Common.WebMessage.showMsg(HttpContext.Current, "请输入正确11位有效的手机号码!");
return;
}
}

 

match 方法 
使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回。 
stringObj.match(rgExp) 
参数 
stringObj 
必选项。对其进行查找的 String 对象或字符串文字。 
rgExp 
必选项。为包含正则表达式模式和可用标志的正则表达式对象。也可以是包含正则表达式模式和可用标志的变量名或字符串文字。 
其余说明与exec一样,不同的是如果match的表达式匹配了全局标记g将出现所有匹配项,而不用循环,但所有匹配中不会包含子匹配项。 
例子1: 
function MatchDemo(){ var r, re; // 声明变量。 var s = "The rain in Spain falls mainly in the plain"; re = /(a)in/ig; // 创建正则表达式模式。 r = s.match(re); // 尝试去匹配搜索字符串。 document.write(r); // 返回的数组包含了所有 "ain" 出现的四个匹配,r[0]、r[1]、r[2]、r[3]。 // 但没有子匹配项a。}输出结果:ain,ain,ain,ain 
exec 方法 
用正则表达式模式在字符串中查找,并返回该查找结果的第一个值(数组),如果匹配失败,返回null。 
rgExp.exec(str) 
参数 
rgExp 
必选项。包含正则表达式模式和可用标志的正则表达式对象。 
str 
必选项。要在其中执行查找的 String 对象或字符串文字。 
返回数组包含: 
input:整个被查找的字符串的值; 
index:匹配结果所在的位置(位); 
lastInput:下一次匹配结果的位置; 
arr:结果值,arr[0]全匹配结果,arr[1,2...]为表达式内()的子匹配,由左至右为1,2...。 
例子2:

代码如下:

function RegExpTest(){

var src="http://sumsung753.blog.163.com/blog/I love you!"; 
var re = /\w+/g; // 注意g将全文匹配,不加将永远只返回第一个匹配。 
var arr; 
while((arr = re.exec(src)) !=null){ //exec使arr返回匹配的第一个,while循环一次将使re在g作用寻找下一个匹配。 
document.write(arr.index + "-" + arr.lastIndex + ":" + arr + "<br/>"); 
for(key in arr){ 
document.write(key + "=>" + arr[key] + "<br/>"); 

document.write("<br/>"); 


window.onload = RegExpTest();

最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹