正则表达式

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

posted on 2015-04-12 11:51  星爷fans  阅读(97)  评论(0)    收藏  举报