function checkemail(str) {
if (isValidEmail(str)) {
return ("通过");
}
else {
return ("重写");
}
}
这个函数调用isValidEmail()函数
function isValidEmail(str){
str = trim(str);
len = str.length;
//没有@或者@在首尾
if((str.indexOf('@') == -1)||(str.indexOf('@') == 0)||(str.indexOf('@') == len-1))
return false;
if(str.indexOf('@') != str.lastIndexOf('@'))
return false;
if(str.indexOf('.') == -1)
return false;
if (str.lastIndexOf('.') == (len-1) )//'.'在最后一位
return false;
for(var j=0;j<len-1;j++){//判断是否有".."或者"@."
if( (str.charAt(j) == '.' && str.charAt(j+1) == '.') ||( str.charAt(j) == '@' && str.charAt(j+1) == '.' ) )
return false;
}
validstr = "1234567890abcdefghijklmnopqrstuvwxyz_-.~@$#";
lowerstr = str.toLowerCase();
for(i=0;i<len;i++){
if(validstr.indexOf(lowerstr.charAt(i)) == -1){
return false;
}
}
return true;
}
页面上是这样写的
<input id="email" type="text" /><input id="Button1" type="button" value="检查" onclick="checkemail(this.value)"/>
全过程是验证input里面输入的内容,是不是Email格式,但是我这样写,结果没有反应?大家帮我看看怎么回事?
if (isValidEmail(str)) {
return ("通过");
}
else {
return ("重写");
}
}
这个函数调用isValidEmail()函数
function isValidEmail(str){
str = trim(str);
len = str.length;
//没有@或者@在首尾
if((str.indexOf('@') == -1)||(str.indexOf('@') == 0)||(str.indexOf('@') == len-1))
return false;
if(str.indexOf('@') != str.lastIndexOf('@'))
return false;
if(str.indexOf('.') == -1)
return false;
if (str.lastIndexOf('.') == (len-1) )//'.'在最后一位
return false;
for(var j=0;j<len-1;j++){//判断是否有".."或者"@."
if( (str.charAt(j) == '.' && str.charAt(j+1) == '.') ||( str.charAt(j) == '@' && str.charAt(j+1) == '.' ) )
return false;
}
validstr = "1234567890abcdefghijklmnopqrstuvwxyz_-.~@$#";
lowerstr = str.toLowerCase();
for(i=0;i<len;i++){
if(validstr.indexOf(lowerstr.charAt(i)) == -1){
return false;
}
}
return true;
}
页面上是这样写的
<input id="email" type="text" /><input id="Button1" type="button" value="检查" onclick="checkemail(this.value)"/>
全过程是验证input里面输入的内容,是不是Email格式,但是我这样写,结果没有反应?大家帮我看看怎么回事?
验证是这样 文本框吧 ~~~
这里的trim函数的定义在哪里?javascript不自带trim方法的。另外return ("通过"); //最好改成alert("通过");return ("重写"); //最好改成alert("重写");
function checkemail(str)
{var pattern = /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
var flag = pattern.test(str);
if(flag){
return ("通过");
}
else {
return ("重写");
}}
<input id="email" type="text" /><input id="Button1" type="button" value="检查" onclick="checkemail(document.getElementById('email').value)"/>
<input id="email" type="text" /><input id="Button1" type="button" value="检查" onclick="checkemail(document.getElementById('email').value)"/>
这样写没用 要提示出来 alert("通过")………………
是不是我两个js函数。逻辑有问题?