用正则表达式
document.getElementById("txtCode").value=document.getElementById("txtCode").value.replace(/[.年月日]/g, "-");
document.getElementById("txtCode").value=document.getElementById("txtCode").value.replace(/[.年月日]/g, "-");
能详细点吗 ?最好附有html的 谢谢了
<script type="text/javascript">
function aa(obj)
{
var value = obj.value.replace(/\D/g, "-");
if(value.substring(value.length - 1, value.length) == "-")
value = value.substring(0 , value.length - 1); obj.value = value;
}
</script>
<input id="a" name="a" type="text" onFocus="javascript:aa(this);">
以下2个日期格式化方法(下面的代码最好单独放一个js文件)
一个是字符串转时间,一个是时间转字符串(这个是梅花雪的)使用方法:
字符串转日期:
var aa = new Date();
aa.setFormatDate("2007年2月10日 15:16:20","yyyy年MM月dd日 hh:mm:ss");
aa.setFormatDate("2007--2--10 15/16/20","yyyy--MM--dd");
aa.format = "yyyy/MM/dd hh:mm:ss";
aa.setFormatDate("2007/2/10 15:16:20");
以上3个是将 "日期字符串" 以 "日期格式" 转换成 日期
其中日期字符串必须比格式字符串要完整 否则无法转换日期转字符串:
var aa = new Date();
aa.Format("yyyy年MM月dd日 hh:mm:ss");
aa.Format("yyyy-MM-dd");
....以后怎么用就不用我说了吧
//default format
Date.prototype.format="yyyy-MM-dd hh:mm:ss";
//used for cache the RegularExpressions
Date.prototype.Regex={
"regex1" : /([\$\(\)\*\+\.\[\]\?\\\^\{\}\|])/g ,
"regex2" : /(y+|M+|d+|m+|h+|s+)/g ,
"year1" : /^y{1,2}$/ ,
"year2" : /^y{4}$/ ,
"month" : /^M{1,2}$/ ,
"day" : /^d{1,2}$/ ,
"hour" : /^h{1,2}$/i ,
"minute" : /^m{1,2}$/ ,
"second" : /^s{1,2}$/
}
//var aa = new Date();
//aa.setFormatDate("2005-12-30","yyyy-MM-dd");
//aa.format = "yyyy-MM-dd";
//aa.setFormatDate("2006-11-11")
//[extended method] Date.setDate by format string
//Warning : date string must perfect than format string
Date.prototype.setFormatDate = function() //author : gzdiablo
{
var A = arguments;
var inputStr = "";
var sformat = this.format;
if(A.length==0 && A.length>2){return this;}
if(A.length==1){inputStr = A[0];}
if(A.length==2){inputStr = A[0];sformat = A[1];}
if(sformat == null && inputStr == null)return this;
var tempint = Date.parse(inputStr);
if(!isNaN(tempint))this.setTime(tempint);
var tempregex = new RegExp(sformat.replace(this.Regex["regex1"],"\\$1").replace(this.Regex["regex2"],"(\\d+)"));
var temparr = sformat.match(this.Regex["regex2"]);
var temparr2 = inputStr.match(tempregex);
if(temparr2!=null && temparr!=null)
{
if(temparr2.length>1)temparr2.shift();
for(var i=0;i<temparr.length && temparr2[i]!=null;i++)
{
switch(true)
{
case this.Regex["year1"].test(temparr[i]):this.setFullYear(temparr2[i]*1 + 2000);break;
case this.Regex["year2"].test(temparr[i]):this.setFullYear(temparr2[i]*1);break;
case this.Regex["month"].test(temparr[i]):this.setMonth(temparr2[i]*1-1);break;
case this.Regex["day"].test(temparr[i]):this.setDate(temparr2[i]*1);break;
case this.Regex["hour"].test(temparr[i]):this.setHours(temparr2[i]*1);break;
case this.Regex["minute"].test(temparr[i]):this.setMinutes(temparr2[i]*1);break;
case this.Regex["second"].test(temparr[i]):this.setSeconds(temparr2[i]*1);break;
}
}
}
return this;
}
//[extended method] Date.toString by format string
Date.prototype.Format = function(informat) //author: meizz
{
var inputStr = "";
var format = this.format;
if(informat!=null)format = informat;
var o = {
"M+" : this.getMonth()+1,
"d+" : this.getDate(),
"h+" : this.getHours(),
"H+" : this.getHours(),
"m+" : this.getMinutes(),
"s+" : this.getSeconds()
}
if(/(y+)/.test(format)) format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)if(new RegExp("("+ k +")").test(format))
{
format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k]:("00"+ o[k]).substr((""+ o[k]).length));
}
return format;
}
我给你加70分
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
</head><body>
<p>日期字符串:
<input type="text" size="30" id="datestr1" value="2006-12-20 5:20:30">
把你需要转换的日期字符串输入在这
<br />
格式字符串1:
<input type="text" size="30" id="formatstr1" value="yyyy-MM-dd hh:mm:ss">
这里放源日期的格式<br>
<input type="button" value="转换" onclick="convert()"/>
<br>
格式字符串2:
<input type="text" size="30" id="formatstr2" value="yyyy年MM月dd日 hh:mm:ss" />
这里放目标日期的格式<br />
转换后的字符串:
<input type="text" size="30" id="datestr2" value="" />
这里是转换后的字符串</p>
</body>
</html>
<script language="javascript">
var ds1 = document.getElementById("datestr1");
var fs1 = document.getElementById("formatstr1");
var ds2 = document.getElementById("datestr2");
var fs2 = document.getElementById("formatstr2");function convert()
{
var datetime = new Date(); //创建一个日期元素
datetime.setFormatDate(ds1.value,fs1.value);//第一步 先用输入的"字符串"和"格式" 设置日期元素的日期
ds2.value = datetime.Format(fs2.value);//第二步 再用输入的"目标格式" 将日期元素的日期 转换成新的 字符串
}
</script><script language="javascript">
//default format
Date.prototype.format="yyyy-MM-dd hh:mm:ss";
//used for cache the RegularExpressions
Date.prototype.Regex={
"regex1" : /([\$\(\)\*\+\.\[\]\?\\\^\{\}\|])/g ,
"regex2" : /(y+|M+|d+|m+|h+|s+)/g ,
"year1" : /^y{1,2}$/ ,
"year2" : /^y{4}$/ ,
"month" : /^M{1,2}$/ ,
"day" : /^d{1,2}$/ ,
"hour" : /^h{1,2}$/i ,
"minute" : /^m{1,2}$/ ,
"second" : /^s{1,2}$/
}
//var aa = new Date();
//aa.setFormatDate("2005-12-30","yyyy-MM-dd");
//aa.format = "yyyy-MM-dd";
//aa.setFormatDate("2006-11-11")
//[extended method] Date.setDate by format string
//Warning : date string must perfect than format string
Date.prototype.setFormatDate = function() //author : gzdiablo
{
var A = arguments;
var inputStr = "";
var sformat = this.format;
if(A.length==0 && A.length>2){return this;}
if(A.length==1){inputStr = A[0];}
if(A.length==2){inputStr = A[0];sformat = A[1];}
if(sformat == null && inputStr == null)return this;
var tempint = Date.parse(inputStr);
if(!isNaN(tempint))this.setTime(tempint);
var tempregex = new RegExp(sformat.replace(this.Regex["regex1"],"\\$1").replace(this.Regex["regex2"],"(\\d+)"));
var temparr = sformat.match(this.Regex["regex2"]);
var temparr2 = inputStr.match(tempregex);
if(temparr2!=null && temparr!=null)
{
if(temparr2.length>1)temparr2.shift();
for(var i=0;i<temparr.length && temparr2[i]!=null;i++)
{
switch(true)
{
case this.Regex["year1"].test(temparr[i]):this.setFullYear(temparr2[i]*1 + 2000);break;
case this.Regex["year2"].test(temparr[i]):this.setFullYear(temparr2[i]*1);break;
case this.Regex["month"].test(temparr[i]):this.setMonth(temparr2[i]*1-1);break;
case this.Regex["day"].test(temparr[i]):this.setDate(temparr2[i]*1);break;
case this.Regex["hour"].test(temparr[i]):this.setHours(temparr2[i]*1);break;
case this.Regex["minute"].test(temparr[i]):this.setMinutes(temparr2[i]*1);break;
case this.Regex["second"].test(temparr[i]):this.setSeconds(temparr2[i]*1);break;
}
}
}
return this;
}
//[extended method] Date.toString by format string
Date.prototype.Format = function(informat) //author: meizz
{
var inputStr = "";
var format = this.format;
if(informat!=null)format = informat;
var o = {
"M+" : this.getMonth()+1,
"d+" : this.getDate(),
"h+" : this.getHours(),
"H+" : this.getHours(),
"m+" : this.getMinutes(),
"s+" : this.getSeconds()
}
if(/(y+)/.test(format)) format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)if(new RegExp("("+ k +")").test(format))
{
format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k]:("00"+ o[k]).substr((""+ o[k]).length));
}
return format;
}
</script>
而楼上的好像把效果给做错了.
var temp = "";
function aa(obj)
{
var value = obj.value.replace(/\D/g, "-");
if(value.substring(value.length - 1, value.length) == "-")
value = value.substring(0 , value.length - 1);value = value.replace(temp, "");
temp = value;
obj.value = value;
}
</script>
<input id="a" name="a" type="text" onFocus="javascript:aa(this);">
<script language="JavaScript"> (这个函数使得网页打开时自动获取当前日期)
<!--
function initDate(){
var date = new Date();
var curYear=date.getYear();
var curMonth=date.getMonth()+1;
var curDate=date.getDate();
var strDate=curYear +"-"+ curMonth +"-"+ curDate;
document.getElementById("txtDate1").value=strDate;
document.getElementById("txtDate2").value=strDate;
}
//-->
</script>
<title>收银流水查询</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body onload="initDate()" bgcolor="#E1F1F1" scroll="no" >
<style type="text/css">
<!--
input { border: 1px solid #86BAFF;
}
textarea { border: 1px solid #86BAFF;}
-->
</style>
<center> <font face="Arial"><span style="font-size: 15pt; font-weight:
700">收银流水查询 </span></font></center>
<TABLE width="100%" border="0" cellPadding="1" cellSpacing="1" bordercolor="297B66" id="Table1" style="BORDER-TOP:1px dotted; ">
<tr><td></td></tr>
</table>
<form method="POST" action="sycx.asp" target="right2" name="sample">
<table>
<tr>
<td>
<font face="Arial"><span style="font-size: 9pt; font-weight:
700">起始日期: </span>
</font><input type="text" name="date1" id="txtDate1" size="8"
onClick="JavaScript:window.open('calendar1.asp?form=sample&field=date1','','directorys=no,toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no,width=190,height=150,left=150,top=240' );">
<img border="0" src="print1.gif" width="24" height="16"></a></td><td>
<font face="Arial"><span style="font-size: 9pt; font-weight:
700">终止日期: </span>
</font><input type="text" name="date2" id="txtDate2" size="8"
onClick="JavaScript:window.open('calendar2.asp?form=sample&field=date2','','directorys=no,toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no,width=190,height=150,left=400,top=240' );">
<img border="0" src="print2.gif" width="24" height="16"></a></td><td> <font face="Arial"><span style="font-size: 9pt; font-weight:
700">收银员</span></font></td><td><style>
.box{border:1px solid #86BAFF;width:42px;height:19px;clip:rect(0px,81px,18px,0px);overflow:hidden;}
.box2{bordercolordark:ffffff;bordercolorlight:C8D0D3; solid #86BAFF;width:42px;height:17px;clip:rect(0px,79px,16px,0px);overflow:hidden;}
select{position:relative;left:-2px;top:-2px;font-size:12px;width:82px;line-height:14px;border:0px;color:#ff0000;}
</style><div class=box>
<div class=box2>
<select name=shyy>
<option>赵娜
</select>
</div>
</div>
</td>
<td> <font face="Arial"><span style="font-size: 9pt; font-weight:
700">款台号</span></font></td><td><style>
.box{border:1px solid #86BAFF;width:42px;height:19px;clip:rect(0px,81px,18px,0px);overflow:hidden;}
.box2{bordercolordark:ffffff;bordercolorlight:C8D0D3; solid #86BAFF;width:42px;height:17px;clip:rect(0px,79px,16px,0px);overflow:hidden;}
select{position:relative;left:-2px;top:-2px;font-size:12px;width:82px;line-height:14px;border:0px;color:#ff0000;}
</style><div class=box>
<div class=box2>
<select name=kth >
<option>
<option>11
<option>13
<option>15
</select>
</div>
</div></td>
<td>
<input type="submit" value="查询" name="chazhao" style="height: 18; border: 1px solid #297B66; background-color:#E9FFFF"></td></tr></table>
</form>
</body>
</html>
sycx.asp
date1=request.form("date1") (接收xycy.html的日期)
date2=request.form("date2") (下面是转换日期格式的)
date1=year(date1)&"-"&right("0"&month(date1),2)&"-"&right("0"&day(date1),2)
date2=year(date2)&"-"&right("0"&month(date2),2)&"-"&right("0"&day(date2),2)
<%
if Request.form("shyy") <>"" then
sql = "SELECT posbillno as lshh,memberno as hyh,billdate as riqi,b.username as shky,c.amount as sshje,c.recv as shouk,changes as zhaol FROM T_pos_bill_header a,T_user b,T_pos_bill_payment c where a.casherid=b.userid AND a.pbseqid=c.pbseqid and b.username='" & Request.form("shyy") & "'and TO_char(billdate,'YYYY-MM-DD') between '"&date1&"' and '"&date2&"' order by billdate desc"
%>
function aa(obj)
{
var value = obj.value.replace(/\D/g, "-");
if(value.substring(value.length - 1, value.length) == "-")
value = value.substring(0 , value.length - 1);obj.value = value;
}
</script>
<input id="a" name="a" type="text" onFocus="javascript:aa(this);">
这种效果是对的 如果是二二零零年十一月二十日 这种格式 又怎么转呢?
再次请教 谢谢!
var temp = "";
function aa(obj)
{
var value = obj.value;
value = value.replace(/十一/g, "11");
value = value.replace(/十二/g, "12");
value = value.replace(/十三/g, "13");
value = value.replace(/十四/g, "14");
value = value.replace(/十五/g, "15");
value = value.replace(/十六/g, "16");
value = value.replace(/十七/g, "17");
value = value.replace(/十八/g, "18");
value = value.replace(/十九/g, "19");
value = value.replace(/○/g, "0");
value = value.replace(/零/g, "0");
value = value.replace(/一/g, "1");
value = value.replace(/二/g, "2");
value = value.replace(/三/g, "3");
value = value.replace(/四/g, "4");
value = value.replace(/五/g, "5");
value = value.replace(/六/g, "6");
value = value.replace(/七/g, "7");
value = value.replace(/八/g, "8");
value = value.replace(/九/g, "9");
value = value.replace(/十/g, "0");
value = value.replace(/\D/g, "-");
if(value.substring(value.length - 1, value.length) == "-")
value = value.substring(0 , value.length - 1);value = value.replace(temp, "");
temp = value;
obj.value = value;
}
</script>
<input id="a" name="a" type="text" onFocus="javascript:aa(this);">