在数组中找到匹配项后如何停止javascript循环
我试图找到一些修复方法,但似乎没有找到我想要的。也许是我的措辞 所以我有一个表单,一旦它提交了一个5位数的邮政编码,它会检查一个数组是否有匹配的值,一旦匹配,我希望它显示一条成功消息,如果不匹配,那么就不返回匹配,但目前它返回消息的次数与数组的次数相同。我对JavaScript还相当陌生,因此非常感谢您的帮助。提前谢谢 JavaScript:在数组中找到匹配项后如何停止javascript循环,javascript,arrays,json,loops,for-loop,Javascript,Arrays,Json,Loops,For Loop,我试图找到一些修复方法,但似乎没有找到我想要的。也许是我的措辞 所以我有一个表单,一旦它提交了一个5位数的邮政编码,它会检查一个数组是否有匹配的值,一旦匹配,我希望它显示一条成功消息,如果不匹配,那么就不返回匹配,但目前它返回消息的次数与数组的次数相同。我对JavaScript还相当陌生,因此非常感谢您的帮助。提前谢谢 JavaScript: <script> function getZip(e) { e.preventDefault(); var zip = doc
<script>
function getZip(e) {
e.preventDefault();
var zip = document.getElementById('zip').value; // Gets the value from the text field "zip" on the form.
var result = ["48650", "48611", "48746", "48614", "48706"];
for (var i = 0; i < result.length; i++) {
//console.log(result[i]);
//if (zip.length == 5 && zip == result[i]){
if (zip == result[i]) {
console.log(zip + " is = to " + result[i]);
alert('Match ' + zip);
} else if (result[i] != zip) {
alert("No Match1");
console.log(zip + " is != to " + result[i]);
} else {
alert("No Match2");
console.log(zip + " is != to " + result[i]);
}
//return false;
}
if (zip === "") { // Checks if the text field "zip" is empty, if so it returns an error message.
alert('Please enter a zip code!');
} else if (zip.length > 5) {
alert("Please enter a valid 5 digit numeric zip code.");
} else if (zip.length < 5) {
alert("Please enter a valid 5 digit numeric zip code.");
} else if (isNaN(zip)) { // Checks if the text field "zip" for alphabetic characters. The "isNaN" function is to determine if a value does not convert to a number, if so it returns an error message.
alert("Please enter a numeric value.");
}
}
</script>
<div class="searchZip">
<p>Please enter your zip code for availability</p>
<form>
<input type="text" name="zip" id="zip" placeholder="Zip Code">
<button onclick="getZip(event);">Check</button>
</form>
<p id="display"></p>
</div>
函数getZip(e){
e、 预防默认值();
var zip=document.getElementById('zip').value;//从表单上的文本字段“zip”获取值。
风险值结果=[“48650”、“48611”、“48746”、“48614”、“48706”];
对于(变量i=0;i5){
警报(“请输入有效的5位数字邮政编码”);
}否则,如果(拉链长度<5){
警报(“请输入有效的5位数字邮政编码”);
}else if(isNaN(zip)){//检查文本字段“zip”是否包含字母字符。“isNaN”函数用于确定值是否未转换为数字,如果是,则返回错误消息。
警报(“请输入数字值”);
}
}
表格:
<script>
function getZip(e) {
e.preventDefault();
var zip = document.getElementById('zip').value; // Gets the value from the text field "zip" on the form.
var result = ["48650", "48611", "48746", "48614", "48706"];
for (var i = 0; i < result.length; i++) {
//console.log(result[i]);
//if (zip.length == 5 && zip == result[i]){
if (zip == result[i]) {
console.log(zip + " is = to " + result[i]);
alert('Match ' + zip);
} else if (result[i] != zip) {
alert("No Match1");
console.log(zip + " is != to " + result[i]);
} else {
alert("No Match2");
console.log(zip + " is != to " + result[i]);
}
//return false;
}
if (zip === "") { // Checks if the text field "zip" is empty, if so it returns an error message.
alert('Please enter a zip code!');
} else if (zip.length > 5) {
alert("Please enter a valid 5 digit numeric zip code.");
} else if (zip.length < 5) {
alert("Please enter a valid 5 digit numeric zip code.");
} else if (isNaN(zip)) { // Checks if the text field "zip" for alphabetic characters. The "isNaN" function is to determine if a value does not convert to a number, if so it returns an error message.
alert("Please enter a numeric value.");
}
}
</script>
<div class="searchZip">
<p>Please enter your zip code for availability</p>
<form>
<input type="text" name="zip" id="zip" placeholder="Zip Code">
<button onclick="getZip(event);">Check</button>
</form>
<p id="display"></p>
</div>
请输入可用的邮政编码
检查
用于中断循环
在您的情况下,不需要,请使用检查数组是否包含元素
您还可以将HTML5模式
属性与regex[1-9][0-9]{4}
一起使用
var结果=[“48650”、“48611”、“48746”、“48614”、“48706”],
display=document.getElementById('display');
函数getZip(e){
e、 预防默认值();
var zip=document.getElementById('zip')。值,
消息=“”,
className='valid';
//删除类
display.classList.remove('valid')
display.classList.remove('invalid');
//检查输入的zipcode是否有效
if(/^[1-9][0-9]{4}$/.test(zip)==false){
消息='请输入有效的5位邮政编码';
className='无效';
}否则{
var index=result.indexOf(zip);
如果(索引>-1){
消息='Zip'+Zip+'在索引'+index'处找到;
}否则{
消息='Zip未在数组中找到';
}
}
//显示消息
display.innerHTML=消息;
display.classList.add(className);
}
#zip:无效,
.无效{
颜色:红色;
}
.有效{
颜色:绿色;
}
请输入可用的邮政编码
检查
将中断
放在条件分支体中
函数getZip(e){
e、 预防默认值();
var zip=document.getElementById('zip').value;//从表单上的文本字段“zip”获取值。
风险值结果=[“48650”、“48611”、“48746”、“48614”、“48706”];
对于(变量i=0;变量i=5){
警报(“请输入有效的5位数字邮政编码”);
}否则,如果(拉链长度<5){
警报(“请输入有效的5位数字邮政编码”);
}else if(isNaN(zip)){//检查文本字段“zip”是否包含字母字符。“isNaN”函数用于确定值是否未转换为数字,如果是,则返回错误消息。
警报(“请输入数字值”);
}
}
请输入可用的邮政编码
检查
算法可能更简单
函数getZip(e){
e、 预防默认值();
var zip=document.getElementById('zip').value;//从表单上的文本字段“zip”获取值。
风险值结果=[“48650”、“48611”、“48746”、“48614”、“48706”];
if(result.indexOf(zip)=-1){
警报(“无匹配1”);
}否则{
警报(“匹配”+zip);
}
if(zip==“”){//检查文本字段“zip”是否为空,如果为空,则返回错误消息。
警报('请输入邮政编码!');
}否则,如果(拉链长度>5){
警报(“请输入有效的5位数字邮政编码”);
}否则,如果(拉链长度<5){
警报(“请输入有效的5位数字邮政编码”);
}else if(isNaN(zip)){//检查文本字段“zip”是否包含字母字符。“isNaN”函数用于确定值是否未转换为数字,如果是,则返回错误消息。
警报(“请输入数字值”);
}
}
请输入可用的邮政编码
检查
正如其他人所说,您可以使用break
退出循环
但我不会使用循环。相反,我会使用函数来确定是否存在匹配:
函数getZip(e){
e、 预防默认值();
var zip=document.getElementById('zip').value;//从表单上的文本字段“zip”获取值。
风险值结果=[“48650”、“48611”、“48746”、“48614”、“48706”];
if(zip==“”){//检查文本字段“zip”是否为空,如果为空,则返回错误消息。
警报('请输入邮政编码!');
}否则,如果(拉链长度>5){
警报(“请输入有效的5位数字邮政编码”);
}否则,如果(拉链长度<5){
警报(“请输入有效的5位数字邮政编码”);