主题:  怎么写javascrpt输入格式为2006-05-08

yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#12006/5/9 17:13:29
我的论坛注册的时候有个生日的文本框,我不想分成年月日三个输入框,只给一个输入框,不过我不知道如何用javascript强制输入的格式为2006-05-08呢?



yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#22006/5/9 18:56:38
我写了一个,可是好象不行,代码如下:
<script type="text/javascript" language="javascript">
function dateCheck(str){
var re = new RegExp("^20\d{2}-((0[1-9]{1})|(1[0-2]{1}))-((0[1-9]{1})|([1-2]{1}[0-9]{1})|(3[0-1]{1}))$";
var ar;
var res = true;

if ((ar = re.exec(str)) != null){
var i;
i = parseFloat(ar[1]);
// verify dd
if (i <= 0 || i > 31){
res = false;
}
i = parseFloat(ar[2]);
// verify mm
if (i <= 0 || i > 12){
res = false;
}
}else{
res = false;
}

if (!res){
alert(请输入 2005-05-08 日期格式);
}
else{
alert("success";
}
return res;
}
</script>



yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#32006/5/9 19:04:25
刚刚从网上搜索了一个,小小修改了一下就可以用了。代码为这样:
<script language="javascript">
function check(){
s_date=document.form1.date.value;
if (s_date==""
{
alert("日期不能为空,请重新输入!";
form1.action=""
return(false);
}
else
{
re=/^20\d{2}-((0[1-9]{1})|(1[0-2]{1}))-((0[1-9]{1})|([1-2]{1}[0-9]{1})|(3[0-1]{1}))$/;
if (s_date.match(re)==null)
{
alert("日期输入格式不对,正确格式为:2005-01-01";
document.form1.date.focus();
     return false;
}
}
}
</script>
不好意思麻烦大家。



yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#42006/5/9 19:42:28
我这里再发几个验证的代码。
只能输入5-20个以字母开头、可带数字、“_”、“.”的字串
<script language="javascript">
function check(){
s_date=document.form1.date.value;
if (s_date==""
{
alert("不能为空,请重新输入!";
form1.action=""
return(false);
}
else
{
re=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
if (s_date.match(re)==null)
{
alert("只能输入5-20个以字母开头、可带数字、“_”、“.”的字串";
document.form1.date.focus();
     return false;
}
}
}
</script>
校验是否全由数字组成
<script language="javascript">
function check(){
s_date=document.form1.date.value;
if (s_date==""
{
alert("不能为空,请重新输入!";
form1.action=""
return(false);
}
else
{
re=/^[0-9]{1,20}$/;
if (s_date.match(re)==null)
{
alert("只能输入数字";
document.form1.date.focus();
     return false;
}
}
}
</script>
校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”
<script language="javascript">
function check(){
s_date=document.form1.date.value;
if (s_date==""
{
alert("不能为空,请重新输入!";
form1.action=""
return(false);
}
else
{
re=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
if (s_date.match(re)==null)
{
alert("普通电话、传真号码:可以“+”开头,除数字外,可含有“-”";
document.form1.date.focus();
     return false;
}
}
}
</script>
校验邮政编码
<script language="javascript">
function check(){
s_date=document.form1.date.value;
if (s_date==""
{
alert("不能为空,请重新输入!";
form1.action=""
return(false);
}
else
{
re=/^[a-zA-Z0-9 ]{3,12}$/;
if (s_date.match(re)==null)
{
alert("请输入正确的邮政编码";
document.form1.date.focus();
     return false;
}
}
}
</script>
验证长度不超过1000字符
<script language="javascript">
function check(){
s_date=document.form1.date.value;
if (s_date==""
{
alert("不能为空,请重新输入!";
form1.action=""
return(false);
}
else
{
if (s_date.length>1000)
{
alert("你输入的字符超过了1000个";
document.form1.date.focus();
     return false;
}
}
}
</script>
校验手机号码:必须以数字开头,除数字外,可含有“-”
<script language="javascript">
function check(){
s_date=document.form1.date.value;
if (s_date==""
{
alert("不能为空,请重新输入!";
form1.action=""
return(false);
}
else
{
re=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
if (s_date.match(re)==null)
{
alert("手机号码:必须以数字开头,除数字外,可含有“-”";
document.form1.date.focus();
     return false;
}
}
}
</script>
邮箱验证
<script language="javascript">
function check(){
s_date=document.form1.date.value;
if (s_date==""
{
alert("不能为空,请重新输入!";
form1.action=""
return(false);
}
else
{
re==/^[\w-]+(\.*[\w-]+)*@([0-9a-z]+(([0-9a-z]*)|([0-9a-z-]*[0-9a-z]))+\.)+[a-z]{2,3}$/i;
if (s_date.match(re)==null)
{
alert("请输入正确的邮箱地址";
document.form1.date.focus();
     return false;
}
}
}
</script>



yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#52006/5/9 19:52:04
补充其他一些代码
只能输入汉字
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))">


只能输入全角
<input onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))">

只能输入数字
<input onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">

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



yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#62006/5/10 9:55:52
蓝鲸大哥可以把这个关于验证的帖子做成一个专题,便于以后查看,也便于大家交流啊?



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#72006/5/10 17:22:32
可以整理一下,发到.NET工具集中,
发布时注意一下格式


非常大鱼

yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#82006/5/15 16:18:11
URL验证
以http://或者https://或者ftp://等开头(当然还有其它形式,这里只列出主要的)
<script language="javascript">
function check(){
s_date=document.form1.date.value;
if (s_date=="" )
{
alert("不能为空,请重新输入!");
form1.action=""
return(false);
}
else
{
re=(http|https|ftp):(\/\/|\\\\) ;
if (s_date.match(re)==null)
{
alert("只能http://等!");
document.form1.date.focus();
return false;
}
}
}
</script>
http://后面必须跟一个单词字符,紧接着单词字符后面的是"."(这样的组合必须出现一次或多次)。紧跟着“.”后面的是域名后缀(如net或者com或者cn等,如果是以IP地址的形式出现就可以是数字)
<script language="javascript">
function check(){
s_date=document.form1.date.value;
if (s_date=="" )
{
alert("不能为空,请重新输入!");
form1.action=""
return(false);
}
else
{
re=((\w)+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3}) ;
if (s_date.match(re)==null)
{
alert("只能http://等!");
document.form1.date.focus();
return false;
}
}
}
</script>
出现完整的链接地址后,还可以出现下一级或者更多级的目录(还要注意个人主页的地址有可能出现"~"符号)
<script language="javascript">
function check(){
s_date=document.form1.date.value;
if (s_date=="" )
{
alert("不能为空,请重新输入!");
form1.action=""
return(false);
}
else
{
re=(((([?](\w)+){1}[=]*))*((\w)+){1}([\&](\w)+[\=](\w)+)*)*) ;
if (s_date.match(re)==null)
{
alert("只能http://等!");
document.form1.date.focus();
return false;
}
}
}
</script>
链接地址末尾可以带参数。如典型的页数?PageNo=2&action=display等



三仙半

职务:普通成员
等级:1
金币:0.0
发贴:241
注册:2006/1/24 15:46:21
#92006/5/16 19:09:43
楼主,感谢你!这些东西很多人要用,你都给整理到一起了,太好了。


闭起眼睛看人生

yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#102006/5/19 22:15:30
身份证的验证
<script language="javascript">
function isIdCardNo()
{
num=document.form.date.value;
if (isNaN(num)) {alert("输入的不是数字!"; return false;}
var len = num.length, re;
if (len == 15)
re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);
else if (len == 18)
re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/);
else {alert("输入的数字位数不对!身份证必须为15或18位的数字"; return false;}
var a = num.match(re);
if (a != null)
{
if (len==15)
{
var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
}
else
{
var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
}
if (!B) {alert("输入的身份证号 "+ a[0] +" 里出生日期不对!"; return false;}
}
return true;
}
</script>



yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#112006/5/24 17:58:37
单选按纽验证:
<script language="javascript">
<!--
function checkform() {
for (i=0;i<document.all('danxuan').length;i++) {
if (document.all('danxuan')[i].checked) {alert ('已经选择');return false;}
}
alert ('还没有选择呢!');
document.all('danxuan')[i].focus();
return false;
}
//-->
</script>



yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#122006/5/25 20:51:25
IP验证
<script language="javascript">
function check(){
s_date=document.form1.date.value;
if (s_date=="" )
{
alert("不能为空,请重新输入!");
form1.action=""
return(false);
}
else
{
re=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
if (s_date.match(re)==null)
{
alert("只能输入255.255.255.255格式的IP");
document.form1.date.focus();
return false;
}
}
}
</script>



yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#132006/5/25 20:54:26
时间验证——时间格式为:2003-12-05 13:04:06
<script language="javascript">
function check(){
s_date=document.form1.date.value;
if (s_date=="" )
{
alert("不能为空,请重新输入!");
form1.action=""
return(false);
}
else
{
re=/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
if (s_date.match(re)==null)
{
alert("只能输入2003-12-05 13:04:06格式的正确时间");
document.form1.date.focus();
return false;
}
}
}
</script>



yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#142006/5/25 20:59:03
文件上传过程中判断文件类型<input type=file onchange="alert(this.value.match(/^(.*)(\.)(.{1,8})$/)[3])">



qijianzhou

职务:普通成员
等级:1
金币:0.0
发贴:41
注册:2003/12/13 23:46:59
#152006/5/31 13:13:49
好,做个记号
谢谢分享