editplus网上收集的一些实用方法--持续更新中

#TITLE=[jQuery、javasript、css]使用总结
#INFO
总结jQuery、javascript和css的使用技巧

#SORT=n


#T=jquey--【checkbox】默认值
$("input[name='sex']").get(0).checked=true; //默认男
//或者
//$(":checkbox[name='sex']:eg(0)").prop("checked",true)//第一个默认

#T=--------------------------------------------------
#T=javascript--将【json对象转换成js字串】
var memberList = {"jfId":jfIdValue,"position":positionValue,"realName":realNameValue };
JSON.stringify(memberList);

#T=--------------------------------------------------
#T=jquery--将【字串装换成json对象】
var memberList = "{\"jfId\":\"123\",\"position\":\"123\",\"realName\":\"123\" }";
var json = $.parseJSON(memberList);
alert(json.jfId);


#T=--------------------------------------------------
#T=JSON--解析【json对象】
var roleList = [{"ACCOUNT_MANAGER":"账户管理员"},{"FINANCE":"财务"},{"PURCHASE_DIRECTOR":"采购主管"},{"PURCHASE_MANAGER":"采购经理"},{"INSPECTOR":"收验员"},{"SALES_DIRECTOR":"销售主管"},{"SALES_MANAGER":"销售经理"}];
//获取
	for(var i = 0; i < roleArray.length ; i++){
		console.log(roleArray[i] );//打印: Object { ACCOUNT_MANAGER="账户管理员"}...
		for(var a in roleArray[i]){
			console.log( a );//打印:ACCOUNT_MANAGER等
			console.log( roleArray[i][a] );//打印:账户管理员
		}
	}

#T=--------------------------------------------------
#T=json--构建json对象并作为ajax参数
var memberList = [];
memberList.push({"jfId":jfIdValue,"position":positionValue,"realName":realNameValue });
/**
*或者:
* var params = { width:1680, height:1050 };
* var str = jQuery.param(params);
* //结果:width=1680&height=1050
*/
if( memberList != null ){
	$.ajax({
	   type: "POST",
	   url: "<c:url value='/buMembers/save'/>",
	   data:{ "memberList":JSON.stringify(memberList)},
	   success: function(){
		alert( "ok" );
	  }
	});
}

#T=--------------------------------------------------
#T=js--为对象赋值的两种方式
var obj = {};
obj.id=123;
obj.name='王五';
obj["age"] = 12;
obj["grade"]=3;
alert( JSON.stringify(obj) );//得到:{"id":123,"name":"王五","age":12,"grade":3}



#T=--------------------------------------------------
#T=jquey--获取父对象
$( obj ).parent();
//$("div:parent");

#T=--------------------------------------------------
#T=Array-去除字符串数组中重复的元素
/**
 * 去除字符串数组中重复的元素
 * @param array 数组
 & @param isShowRepeatElement treu|false 是否返回重复元素
*/
function unique(array,isShowRepeatElement){
	var array1=new Array();//临时数组,用于比较
	var repeatArray= new Array();//重复元素
	$(array).each(function(i){
	   if( $.inArray(array[i],array1) == -1){//-1:不存在该数组中,否则返回位置
		   array1.push(array[i]);
		}else{
			repeatArray.push(array[i]);
		}
	 });
	 if( isShowRepeatElement )
	 {
		array1 = repeatArray ;
	 }
	return array1;
}

#T=--------------------------------------------------
#T=Array-获取数组中最大的数
Math.max.apply(Math, [120, 451, 134, 190, 230, 110]);  

#T=--------------------------------------------------
#T=Array-获取数组中最小的数
Math.min.apply(Math, [120, 451, 134, 190, 230, 110]);  

#T=--------------------------------------------------
#T=Array-汇总数组中的值
Array.prototype.sum = function(){
    for (var i=0, sum=0; i < this.length; sum += this[i++]);
    return sum;
}

#T=--------------------------------------------------
#T=trim()--去除空格
/**
* 去除空格
*/
String.prototype.trim = function()
{
return this.replace(/\s/g, "");
}

#T=--------------------------------------------------
#T=IE各个版本的获取
function getIE_version(){
	var browser=navigator.appName
	var b_version=navigator.appVersion
	var version=b_version.split(";");
	var trim_Version=version[1].replace(/[ ]/g,"");
	if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE6.0")
	{
		alert("IE 6.0");
	}
	else if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE7.0")
	{
		alert("IE 7.0"); window.location.href="http://xxxx.com";
	}
	else if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE8.0")
	{
		alert("IE 8.0");
	}
	else if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE9.0")
	{
		alert("IE 9.0");
	} 
}

#T=--------------------------------------------------
#T=替换所有
function test(){
	var aaa = "11112342fae{1}askdfka{1}";
	alert( aaa.replace(/{\d}/g,"天天") ) ;
}

#T=--------------------------------------------------
#T=用一个表字段替换另一个表字段
UPDATE tableA SET a1 = a2;
UPDATE tableA SET a1 = (select a1 from tableB);

#T=--------------------------------------------------
#T=CSS--控制文字...显示
white-space:nowrap;overflow:hidden;text-overflow:ellipsis;

#T=--------------------------------------------------
#T=CSS--两行展现
display: inline-block;height: 60px;line-height: 30px;overflow: hidden;width: 287px;

#T=--------------------------------------------------
#T=CSS--三角形
	*{

		margin:0;

		padding:0;

		}
	.arrow{
		position:relative;
		margin:100px;
	}
	.arrow_down{
		position:absolute;
		display:block;
		border:20px solid #fff;
		border-color:#fff #2b6bac;
		border-width:20px 20px 0px 20px;
		bottom:0px;
	}
	.arrow_up{
			position:absolute;
			display:block;
			border:20px solid #fff;
			border-color:#fff #e0e0e0;
			border-width:0px 20px 20px 20px;
			bottom:0px;
		}
	hr{height:50px;}
  <span class='arrow'> <em class='arrow_down'></em></span>
  <hr>
  <span class='arrow'> <em class='arrow_up'></em></span>


#T=--------------------------------------------------
#T=js--UTC2Date
var UTCDateString = "Sat Jun 27 14:36:00 CST 2015";
var date = new Date( Date.parse(UTCDateString)  );
alert(date.getFullYear() + "-" + (date.getMonth() +1) );

#T=--------------------------------------------------
#T=js--日期比较
	function compareDate(oldDate,newDate){
		if( oldDate == "" ) return -1;
		if( newDate == "" ) return -1;

		var date1=new Date(oldDate.replace(/-/g, "/"));
		var date2=new Date(newDate.replace(/-/g, "/"));
		
		if( date2 < date1){
			return 0;
		}else{
			return 1;
		}
	}

new Date( Date.parse(datas[2])  );

#T=--------------------------------------------------
#T=jquey--操作select
每一次操作select的时候,总是要出来翻一下资料,不如自己总结一下,以后就翻这里了。

比如<select class="selector"></select>

1、设置value为pxx的项选中

     $(".selector").val("pxx");

2、设置text为pxx的项选中

    $(".selector").find("option[text='pxx']").attr("selected",true);

    这里有一个中括号的用法,中括号里的等号的前面是属性名称,不用加引号。很多时候,中括号的运用可以使得逻辑变得很简单。

3、获取当前选中项的value

    $(".selector").val();

4、获取当前选中项的text

    $(".selector").find("option:selected").text();

    这里用到了冒号,掌握它的用法并举一反三也会让代码变得简洁。

 

很多时候用到select的级联,即第二个select的值随着第一个select选中的值变化。这在jquery中是非常简单的。

如:$(".selector1").change(function(){

     // 先清空第二个

      $(".selector2").empty();

     // 实际的应用中,这里的option一般都是用循环生成多个了

      var option = $("<option>").val(1).text("pxx");

      $(".selector2").append(option);

});

#T=--------------------------------------------------
#T=jquey--构建input[type=file]框
<a href="javascript:;" οnclick="fn_uploadFile();">上传</a>
<input type="file" style="display:none;" id="id_uploadFile"/>
function fn_uploadFile(){
	$("#id_uploadFile").triggle("click");
}

#T=--------------------------------------------------
#T=jquey--判断checkbox是否选中及改变checkbox状态
	最有效最简单:
	<input type="checkbox" id="cbx" checked="checked">
	alert($("#cbx").is(":checked"));

jquery判断checked的三种方法:
.attr('checked):   //看版本1.6+返回:”checked”或”undefined” ;1.5-返回:true或false
.prop('checked'): //16+:true/false
.is(':checked'):    //所有版本:true/false//别忘记冒号哦
jquery赋值checked的几种写法:
所有的jquery版本都可以这样赋值:
// $("#cb1").attr("checked","checked");
// $("#cb1").attr("checked",true);
jquery1.6+:prop的4种赋值:
// $("#cb1″).prop("checked",true);//很简单就不说了哦
// $("#cb1″).prop({checked:true}); //map键值对
// $("#cb1″).prop("checked",function(){
return true;//函数返回true或false
});
//记得还有这种哦:$("#cb1″).prop("checked","checked");


#T=--------------------------------------------------
#T=jquery--【判断元素是否隐藏】
	$("#elem_id").is(":hidden");


#T=--------------------------------------------------
#T=jquery--【input-change事件】
	$("#input_id").on('input',function(e){  
	   alert('Changed!')  
	}); 


#T=--------------------------------------------------
#T=jquery--【自适应宽度输入框】
 $("input").unbind('keydown').bind('keydown', function(){
			$(this).width(textWidth($(this).val()));
		});

var textWidth = function(text){ 
        var sensor = $('<pre>'+ text +'</pre>').css({display: 'none'}); 
        $('body').append(sensor); 
        var width = sensor.width();
        sensor.remove(); 
        return width;
    };

#T=--------------------------------------------------
#T=jquery--- 回车事件
简单地记下jquery实现回车事件,代码如下:

全局:

$(function(){
	document.onkeydown = function(e){
		var ev = document.all ? window.event : e;
		if(ev.keyCode==13) {
			   $('#FormId').submit();//处理事件
		 }
	}
});  


某个控件:
$('#id').keydown(function(e){
	if(e.keyCode==13){
	   $('#FormId).submit(); //处理事件
	}
});

if (window.event.keyCode==13) window.event.keyCode=0   //这样就取消回车键了

如果想模拟Tab键,只要写成  if (window.event.keyCode==13) window.event.keyCode=9    就行了,它会跳到另一个元素上。

#T=--------------------------------------------------
#T=jquey--仅可以输入数字
/**
* <input type="text" id="abc" value="" οnkeyup="onlyNumbeEnter(event,this);"/>
*
*/
function onlyNumbeEnter(event,obj){
		event = window.event||event; 
	    if(event.keyCode == 37 | event.keyCode == 39){ 
	        return; 
	    } 
	    //先把非数字的都替换掉,除了数字和. 
	    obj.value = obj.value.replace(/[^\d]/g,""); 
		//是否小于3个
		//var re = /^\d{3,}$/;
		//alert( re.test(obj.value) ) ;

}

#T=--------------------------------------------------
#T=jquey--不能输入空格
/**
* <input type="text" id="abc" value="" οnkeyup="excapeBlankSpace(event,this);"/>
*
*/
function excapeBlankSpace(event,obj){
		event = window.event||event; 
	    if(event.keyCode == 37 | event.keyCode == 39){ 
	        return; 
	    } 
	obj.value = obj.value.replace(/\s/g,""); 
}

#T=--------------------------------------------------
#T=javascript -- 格式化数字为金额样式:1,000.00
function   formatNum(num)
	{
		if(!/^(\+|-)?(\d+)(\.\d+)?$/.test(num)){alert("wrong!");   return   num;}  
		var   a   =   RegExp.$1,   b   =   RegExp.$2,   c   =   RegExp.$3;  
		var   re   =   new   RegExp().compile("(\\d)(\\d{3})(,|$)");  
		while(re.test(b))   b   =   b.replace(re,   "$1,$2$3");  
		return   a   +""+   b   +""+   c;  
	}

#T=--------------------------------------------------
#T=javascript--3秒钟后执行
setTimeout(function () { alert()  }, 3000);

#T=--------------------------------------------------
#T=javascript--a标签打开的b页面刷新a页面
<a href="b.html">打开</a>
b.html
<input type="button" οnclick="window.opener.document.location.reload();">刷新父页面</a>


#T=--------------------------------------------------
#T=jquey--虚拟a点击事件
<a target='_blank' id='previewA' style='display:none;'></a>
var _span = '<span id="_span">磨延城</span>';
$("#previewA").attr("href", APP_BASE + "/information/detail?id=" + data.data);
$("#previewA").append(_span);
$("#_span").click();

#T=--------------------------------------------------
#T=jquey--重置form表单
 $("#form1")[0].reset();


#T=--------------------------------------------------
#T=jquey--如何获取table中checkbox被选中的所对应的行数呢
$("table input:checkbox").each(function(){
    if($(this).attr("checked")==true){
        alert($("table input:checkbox").index(this))
    }
})

#T=--------------------------------------------------
#T=jquey--table中所有checkbox全选
$('#tab1 tr').click(function(){
   $(':checkbox',this).prop('checked',true);//true,全部选中,false,全部取消选中
})


#T=--------------------------------------------------
#T=zencode--构建五个 <div id="_div1">Links1</div>
div#_div${Links$}*5
<div id="_div1">Links1</div>
<div id="_div2">Links2</div>
<div id="_div3">Links3</div>
<div id="_div4">Links4</div>
<div id="_div5">Links5</div>

#T=--------------------------------------------------
#T=zencode--构建div下的ul及3个li <div id="content"><ul><li><a href=...>Links1...
div#content>ul>li*3>a[href="javascript:void(0);"]{Links$}
<div id="content">
	<ul>
		<li><a href="javascript:void(0);">Links1</a></li>
		<li><a href="javascript:void(0);">Links2</a></li>
		<li><a href="javascript:void(0);">Links3</a></li>
	</ul>
</div>


#T=--------------------------------------------------
#T=table--点击行变色并选中首列checkbox
<table id="_table" border="1" style="width:100%;">
		<tr>
			<td><input type="checkbox" name="_cbx"></td>
			<td>sdfsdsdsdf</td>
			<td>sdfsdsdsdf</td>
			<td>sdfsdsdsdf</td>
		</tr>
		
		<tr>
			<td><input type="checkbox" name="_cbx"></td>
			<td>sdfsdsdsdf</td>
			<td>sdfsdsdsdf</td>
			<td>sdfsdsdsdf</td>
		</tr>
		
		<tr>
			<td><input type="checkbox" name="_cbx"></td>
			<td>sdfsdsdsdf</td>
			<td>sdfsdsdsdf</td>
			<td>sdfsdsdsdf</td>
		</tr>
		
		<tr>
			<td><input type="checkbox" name="_cbx"></td>
			<td>sdfsdsdsdf</td>
			<td>sdfsdsdsdf</td>
			<td>sdfsdsdsdf</td>
		</tr>
		
	</table>


	$(document).ready(function() {
		$("#_table tr").click(function(e){
			
			var $tr = $(this);
			if (!e) var e = window.event;
			var obj = e.srcElement || e.target;
			if (obj.nodeType == 3){ 
				obj = obj.parentNode;
			}
						
			if(obj.tagName == "INPUT" ){
				if(obj.checked){
					$tr.css("backgroundColor","yellow");
				}else{
					$tr.css("backgroundColor","white");
				}
				return;
			}else{
				if( $tr.find(":checkbox").prop('checked') ){
					$tr.css("backgroundColor","white");
					$tr.find(":checkbox").prop('checked',false);
				}else{
					$tr.css("backgroundColor","yellow");
					$tr.find(":checkbox").prop('checked',true);
				}
			}
			
		})
	});	


#T=--------------------------------------------------
#T=其他未整理
获取一组radio被选中项的值
var item = $('input[@name=items][@checked]').val();
获取select被选中项的文本
var item = $("select[@name=items] option[@selected]").text();
select下拉框的第二个元素为当前选中值
$('#select_id')[0].selectedIndex = 1;
radio单选组的第二个元素为当前选中值
$('input[@name=items]').get(1).checked = true;

获取值:

文本框,文本区域:$("#txt").attr("value");
多选框checkbox:$("#checkbox_id").attr("value");
单选组radio:   $("input[@type=radio][@checked]").val();
下拉框select: $('#sel').val();

控制表单元素:
文本框,文本区域:$("#txt").attr("value",'');//清空内容
                 $("#txt").attr("value",'11');//填充内容

多选框checkbox: $("#chk1").attr("checked",'');//不打勾
                 $("#chk2").attr("checked",true);//打勾
                 if($("#chk1").attr('checked')==undefined) //判断是否已经打勾

单选组radio:    $("input[@type=radio]").attr("checked",'2');//设置value=2的项目为当前选中项
下拉框select:   $("#sel").attr("value",'-sel3');//设置value=-sel3的项目为当前选中项
                $("<option value='1'>1111</option><option value='2'>2222</option>").appendTo("#sel")//添加下拉框的option
                $("#sel").empty();//清空下拉框


整数或者小数:^[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"。 匹配中文字符的正则表达式: [\u4e00-\u9fa5]

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

应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
String.prototype.len=function(){return this.replace(/[^\x00-\xff]/g,"aa").length;}

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

匹配html标签的正则表达式:<(.*)>(.*)<\/(.*)>|<(.*)\/>

匹配首尾空格的正则表达式:(^\s*)|(\s*$)

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

String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}

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

下面是利用正则表达式匹配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("Not a valid IP address!")
}
}

不过上面的程序如果不用正则表达式,而直接用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))

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

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


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

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

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

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

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

 

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

评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

 

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

评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

 

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

评注:可以用来删除空白行

 

匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?|<.*? />

评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

 

匹配首尾空白字符的正则表达式:^\s*|\s*$

评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

 

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

评注:表单验证时很实用

 

匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*

评注:网上流传的版本功能很有限,上面这个基本可以满足需求

 

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

评注:表单验证时很实用

 

匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}

评注:匹配形式如 0511-4405222 或 021-87888822

 

匹配腾讯QQ号:[1-9][0-9]{4,}

评注:腾讯QQ号从10000开始

 

匹配中国邮政编码:[1-9]\d{5}(?!\d)

评注:中国邮政编码为6位数字

 

匹配身份证:\d{15}|\d{18}

评注:中国的身份证为15位或18位

 

匹配ip地址:\d+\.\d+\.\d+\.\d+

评注:提取ip地址时有用

 

匹配特定数字:

^[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)

评注:处理大量数据时有用,具体应用时注意修正

 

匹配特定字符串:

^[A-Za-z]+$  //匹配由26个英文字母组成的字符串

^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串

^[a-z]+$  //匹配由26个英文字母的小写组成的字符串

^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串

^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串

评注:最基本也是最常用的一些表达式

 

整理出来的一些常用的正则表达式所属分类: JScript  (三)

Email : /^\w+([-+.]\w+)*@\w+([-.]\\w+)*\.\w+([-.]\w+)*$/

isEmail1 : /^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/;

isEmail2 : /^.*@[^_]*$/;

Phone : /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/

Mobile : /^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/

Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/

IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/

Currency : /^\d+(\.\d+)?$/

Number : /^\d+$/

Code : /^[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/

PassWord :^[\\w]{6,12}$

ZipCode : ^[\\d]{6}

/^(\+\d+ )?(\(\d+\) )?[\d ]+$/; //这个是国际通用的电话号码判断

/^(1[0-2]\d|\d{1,2})$/; //这个是年龄的判断

/^\d+\.\d{2}$/;  //这个是判断输入的是否为货币值

 <!-- IP地址有效性验证函数-->

 <script language=javascript runat=server>

    ip_ip = '(25[0-5]|2[0-4]\\d|1\\d\\d|\\d\\d|\\d)';

    ip_ipdot = ip + '\\.';

    isIPaddress = new RegExp('^'+ip_ipdot+ip_ipdot+ipdot+ip_ip+'$');

</script>

应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

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

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

String.prototype.trim = function()

{

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

}

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

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

匹配首尾空格的正则表达式:(^\s*)|(\s*$)

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

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

 

^\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+)?$


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值