求助帖 关于“无法获取未定义或 null 引用的属性“charCodeAt””

雪浪东陵 2014-05-19 04:00:11
function validateEmailAddress(fieldName, selector) {
var mail = $(selector).val();
mail = ""+mail;
var maillen = mail.length;
var dotCnt = 0;
var atCnt = 0;

if( maillen === 0)
return {valid:false, msg:mkElem("p", {}, fieldName + " is mandatory field")};

var fstChar = mail.slice(0,1);

if(fstChar ==='.' || fstChar === '@' || fstChar === '-')
return{ valid:false, msg:mkElem("p", {}, fstChar +" is not allowed as first character")};

if(mail.slice(-1) === '.' )
return{ valid:false, msg:mkElem("p", {}, ". is not allowed as last character")};

for(var loopCnt = 0; loopCnt < maillen; loopCnt++) {
var Char = mail[loopCnt];
var charInt = mail[loopCnt].charCodeAt(0);

if(!((charInt >=64 && charInt <= 90) || (charInt >= 97 && charInt <= 122) || ( charInt ===45) || ( charInt === 46 ) || (charInt >= 48 && charInt <= 58)))
return {valid:false, msg:mkElem("p", {}, "Please enter valid emailId")};
if(Char ==='@')
atCnt++;
if (Char === '.'){
dotCnt ++;
if(mail[loopCnt + 1] === '.')
return {valid:false, msg:mkElem("p", {}, "Please enter valid emailId")};
}
}//for loop end

if(!(atCnt === 1 && dotCnt >= 1 && dotCnt <= 3 ))
return {valid:false, msg:mkElem("p", {}, "Please enter valid emailId")};

return{valid:true};

}

这是一个处理函数,报错在红色字体部分。我实在想不明白,是哪里出问题了。关于“无法获取未定义或 null 引用的属性“charCodeAt””这个错误
只在IE浏览器上出现,在goole chrome 和firefox上都没有。这是浏览器的兼容性问题?还是代码逻辑问题?我感觉逻辑没有问题的。

有遇到过类似问题的吗?给点建议。谢谢。
...全文
647 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tony4geek 2014-05-19
  • 打赏
  • 举报
回复
mail[loopCnt] 看下是什么啊。/
  • 打赏
  • 举报
回复
所有IE版本都是这样?这方法本身不存在兼容问题,你可以尝试只保留循环,其余代码都干掉,看是否正确,逐步查找,这么看貌似没什么问题

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧