主题:如何用javascript做表单验证程序.
yanjinbin
[专家分:130] 发布于 2006-12-28 12:57:00
首先排除下正则表达式啊.因为他只能提示数据错误,具体错误在那就不能提示了,这个方法不是很好.
其次.以前写VBscript用mid len split这些函数 截取 判断字符很有用,而且可以判断字符是否为空,提示为空,有特殊字符提示有特殊字符.
但是在javscript有什么match属性来替代上面的字符啊.因为我用javascript写个判断最多为多少字的判断脚本都写不出,而其实如果有len的函数不是很快就OK了,但我找不出这样的函数,谁知道怎么写提示下啊,谢谢.
最好帮忙写两个验证超过多少字提示错误,和验证邮箱的这两个典型给我参考下.
谢谢.
最后更新于:2006-12-28 13:02:00
回复列表 (共7个回复)
沙发
longlong16 [专家分:10670] 发布于 2006-12-28 16:24:00
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
板凳
yanjinbin [专家分:130] 发布于 2006-12-28 17:43:00
length()因该是一个属性不用加()了吧.
3 楼
dreamlover [专家分:1170] 发布于 2006-12-28 18:19:00
同意!
楼主在上班还是上学呢
4 楼
liulei001 [专家分:12820] 发布于 2006-12-28 23:12:00
楼主还是没理解“面向对象”的含义。
5 楼
yanjinbin [专家分:130] 发布于 2006-12-29 08:51:00
[quote]楼主还是没理解“面向对象”的含义。[/quote]
请详细的说下为什么我没理解呢。
6 楼
yanjinbin [专家分:130] 发布于 2006-12-29 08:52:00
[quote]同意!
楼主在上班还是上学呢[/quote]
哈,在一个亲戚那混日子,准备去找份网页设计的工作,
我现在因该还算应届毕业生吧.
7 楼
yanjinbin [专家分:130] 发布于 2006-12-29 09:49:00
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段为真 其他为假,是否还有别的特征呢.
我来回复