回 帖 发 新 帖 刷新版面

主题:如何用javascript做表单验证程序.

首先排除下正则表达式啊.因为他只能提示数据错误,具体错误在那就不能提示了,这个方法不是很好.
其次.以前写VBscript用mid len split这些函数 截取 判断字符很有用,而且可以判断字符是否为空,提示为空,有特殊字符提示有特殊字符.
但是在javscript有什么match属性来替代上面的字符啊.因为我用javascript写个判断最多为多少字的判断脚本都写不出,而其实如果有len的函数不是很快就OK了,但我找不出这样的函数,谁知道怎么写提示下啊,谢谢.
最好帮忙写两个验证超过多少字提示错误,和验证邮箱的这两个典型给我参考下.
谢谢.

回复列表 (共7个回复)

沙发

javascript一样有字符串处理函数:
1、indexOf  字符查找
     indexOf用于发现一系列的字符在一个字符串中等位置并告诉你
     子字符串的起始位置。如果一个字符串中部包含该子字符串则
     indexOf返回returns "-1."

2、charAt ()
      chatAt方法用于发现一个字符串中某个特定位置的字符.

3、substring()   获取子字符串
     从一个字符串中抓取一个子字符串

    var the_substring = the_string.substring(from, to);

   "From"指的是子字符串的起始位置,"to"指的是子字符串的结束位置 + 1,

   var the_string = "china";

   var clergy = the_string.substring(0,3);

   var tool = the_string.substring(2,4);

  运行该段代码后变量clergy的值为"chi"; 变量tool的值为
  "in"。

4、split() 字符串分割

   var the_string = "i like china";
   var string_arr = the_string.split(" ");
   for(i= 0; i < string_arr.length ; i++)
   {
    alert(string_arr[i]);
   }
5、length()函数表示字符长度
   var str1 = "abc";
   i = str1.length();
 i为3

板凳

length()因该是一个属性不用加()了吧.

3 楼

同意!
楼主在上班还是上学呢

4 楼

楼主还是没理解“面向对象”的含义。

5 楼

[quote]楼主还是没理解“面向对象”的含义。[/quote]
请详细的说下为什么我没理解呢。

6 楼

[quote]同意!
楼主在上班还是上学呢[/quote]
哈,在一个亲戚那混日子,准备去找份网页设计的工作,
我现在因该还算应届毕业生吧.

7 楼

function teshu(str){    //判断是否有特殊字符
var xx="!<>$^*`~|}{[];,";  //含有特殊字符 不知道还有什么特殊字符没收录到
var yy=str;
for (var i=0;i<xx.length;i++){
  for(var ii=0;ii<yy.length;ii++){
  if(xx.charAt(i)==yy.charAt(ii)){
    return true;    //含有特殊字符 返回真
  }
  }
}
function isemail(str){  //验证是否为邮箱,是否含有@ .字符长度大于5
var xx=str;
if (xx.indexOf("@")>0&&xx.indexOf(".")>0&&xx.length>5){
 return true;
}
else{
  alert("Email输入错误");
  return false;
}
}
return false;  
}

function isriqi(str){   //判断日期
var xx=str;
var xx=xx.split(/\-|\/|\./);
if(xx.length!=3){
  alert("日期输入错误,请重新输入!");
  return false;
}
else{
  if(!isNaN(xx[0])&&!isNaN(xx[1])&&!isNaN(xx[0])){   //判断是否为数字
  if(xx[0].length!=4){                                //判断年份是否为4位数
   alert("年份输入错误,格式为:2006-02-03");
  return false;
  }
  else{
    if(xx[1].length=2&&xx[1].charAt(0)<2){             //判断月份是否为2位数,且第一位不到小于2
       if(xx[2].length=2&&xx[2].charAt(0)<=3){
       return true;
       }
       else{
        alert("日份输入错误,格式为:2006-02-03");
        return false;
       }
    }
    else{
      alert("月份输入错误,格式为:2006-02-03");
      return false;
    }
  }
}
else{
  alert("请不要在日期里面包含字母 符号等非数字的字符");
  return false;
}
}
}

function isurl(str){ //判断是否为网址
var xx=str;
var xx=xx.split(/\./);  //截开 url可以是两段或三段如baidu.com或www.baidu.com
if(xx.length==3||xx.length==2){
  return true;
}
else{
  alert("网站输入错误,请重新输入");
  return false;
}
}

大家看下我写的表单验证程序,看我取的数据特征是否有误.谢谢。特别是网址,我就判断他是几段2 3段为真 其他为假,是否还有别的特征呢.

我来回复

您尚未登录,请登录后再回复。点此登录或注册