验证表单JavaScript
我试图验证表单中的一些字段 我想检查他们是否输入了所需字段的正确区号 区号应为验证表单JavaScript,javascript,validation,Javascript,Validation,我试图验证表单中的一些字段 我想检查他们是否输入了所需字段的正确区号 区号应为212、313或414 这是我的家庭作业,所以我不能使用正则表达式,我不是真的在问答案,但这是我试图使用的,但它们中没有一个对我有效 if (input.substr(0,2) != 212|| input.substr(0,2) != 313 || input.substr(0,2) != 414) Message += " <p>Sorry but you have en
212
、313
或414
这是我的家庭作业,所以我不能使用正则表达式,我不是真的在问答案,但这是我试图使用的,但它们中没有一个对我有效
if (input.substr(0,2) != 212|| input.substr(0,2) != 313 || input.substr(0,2) != 414)
Message += " <p>Sorry but you have enter wrong area code!!!</p>";
if(input.substr(0,2)!=212 | | input.substr(0,2)!=313 | | input.substr(0,2)!=414)
消息+=“对不起,您输入了错误的区号!!!”;
我试过使用子字符串
索引
,但实际上我不知道它们中的任何一个在这种情况下是否正确
是否仍然需要验证,但不需要使用正则表达式
谢谢你试试这个
if (input.substr(0,3) != 212|| input.substr(0,3) != 313 || input.substr(0,3) != 414)
Message += " <p>Sorry but you have enter wrong area code!!!</p>";
if(input.substr(0,3)!=212 | | input.substr(0,3)!=313 | | input.substr(0,3)!=414)
消息+=“对不起,您输入了错误的区号!!!”;
虽然我没有测试它
<input type="text" id="num"/>
<div id="msg"></div>
// This should run in a window.onload or $(document).ready() block
var num = document.getElementById('num'),
msg = document.getElementById('msg');
num.onblur = function(){
var areacodes = '212|313|414|',
areacode = this.value.replace(/[^0-9]/, '').substring(0,3),
message = 'Area code validates.';
if (areacode.length < 3 || areacodes.indexOf(areacode + '|') === -1) {
message = "Sorry but you have entered an invalid area code.";
}
msg.innerHTML = message;
};
//这应该在window.onload或$(document).ready()块中运行
var num=document.getElementById('num'),
msg=document.getElementById('msg');
num.onblur=函数(){
变量区域代码='212 | 313 | 414 |',
areacode=此.value.replace(/[^0-9]/,'')。子字符串(0,3),
消息='区号验证';
如果(areacode.length<3 | | areacodes.indexOf(areacode+“|”)=-1){
message=“对不起,您输入的区号无效。”;
}
msg.innerHTML=消息;
};
input
我猜是一个string
变量,而不是指向input
元素的DOM
注释。这不应该吗
var str = input.trim().substr(0,3);
if ( !{212:1, 313:1, 414:1}[ str ] ){
Message += " <p>Sorry but you have enter wrong area code!!!</p>";
}
var str=input.trim().substr(0,3);
如果(!{212:1313:1414:1}[str]){
消息+=“对不起,您输入了错误的区号!!!”;
}
为什么substr的第一个参数在增加?输入可以是212、313或414中的一个。我猜您的代码将验证313
和414
在错误的位置区号将仅来自索引0-2
我认为应该立即输入值,我已经编辑过了。@Chibuzo谢谢,但一旦我尝试过,它仍然不起作用,我不知道为什么。您是否尝试过确保输入有值?尝试调用alert(input)
,看看会发生什么。主要问题是子字符串(0,2)只提供2个字符。不是三个。但是您还应该将比较切换到字符串并使用==@KshitijMehta是的,我得到的值是正确的,我可以验证代码的其余部分,除了确保区号是否正确。@AutoSponge如果是这样的话,我将尝试使用3。@AutoSponge感谢您指出这一点,这是问题之一:染料input
只是我从字段值中指定的名称,编辑我测试过,但它不起作用:(我发现问题是(0,2)
它应该是(0,3)
是的,它应该是三个。我还为非数字字符添加了一个规范化器:当他说“这是家庭作业,所以我不能使用正则表达式”时,答案是什么?@LarryBattle-验证本身与正则表达式无关,我补充了这一点,以证明(212)
无法验证的一点,尽管许多人会输入此值。我还注意到我将正则表达式放在错误的位置。从技术上讲,删除它,它仍然“有效”,只是无法匹配输入的所有形式的区号。