2016-10-28 2 views
0

이제 문자열의 처음 3자를 추가하고 마지막 2 자와 비교하여 일치하는지 확인해야하는 코드 부분을 작성하고 있습니다. .값 입력에서 특정 부분을 더하는 코드

예 : ID 12306는 대한 내가 여기 (다시 2012 년)에 이전 항목을 찾았어요 1 + 2 = 6 + 3, 0 + 6 = 6

로, 유효하다 비슷한 문제가 있지만 코드 예제에서는 2 개의 정적 숫자 변수를 사용하고 HTML 입력 값을 사용하여 동일한 메서드를 구현하려고하면 아무 것도하지 않는 것 같습니다. 당신의 방법은 코멘트에 명시된 바와 같이 다수의 문제 (잘못된 케이스, 여러 반환, 하위 문자열 색인)가 있지만

var custId = document.getElementById("custid").value; 

function validateId(custid) { 
    var custId2 = custId; 
    var custId3 = custId; 

    custId2 = custId2.substring(0, 2); 
    custId3 = custId3.substring(3, 5); 

    custid = custid.split(''); 
    var sum = 0; 

    for (var i = 0; i < custid.length; i++) { 
    sum += parseInt(custid[i], 10); 
    } 

    return sum; 

    if (add(custId2) != add(custId3)) { 
    output = "ID error. The first three digits must sum to the value ' + 
      'of digits 4 and 5. e.g. 12306 is a valid value"; 
    output = custId2 + "<br />" + custId3; 
    addToOutput(); 
    return false; 
    } 
} 
+0

. 그것은 이유가 될 수 있습니다 – FlatLander

+0

그리고 정확히 무엇이 문제입니까? Coz 사이에'return' 문이 있고'custid'를 완전히 루핑하고 있습니다. 따라서 정확한 문제를 명시하십시오. – Rajesh

+1

함수 중간에 return 문이 있습니다. 함수에 닫는 중괄호가 없습니다. 코드에서 함수를 호출하는 방법이나 입력 요소에 연결되는 방법을 표시하지 않습니다. 당신은 "추가"기능이 무엇인지를 보여주지 않았습니다. 당신의'custid' 대'custId' 대소가 일치하지 않습니다 – chiliNUT

답변

1

, 난 당신이 원하는대로 사용할 수있는 솔루션을 제공하고 있습니다.

var validateId = function(custId) { 
    var custId2 = custId.substring(0, 3).split(''); 
    var custId3 = custId.substring(3,5).split(''); 

    var sum2 = 0; 
    var sum3 = 0; 

    custId2.forEach((e) => { 
    sum2 += parseInt(e); 
    }) 

    custId3.forEach((e) => { 
    sum3 += parseInt(e); 
    }) 

    if(sum2 !== sum3) { 
    console.log("ID error. The first three digits must sum to the value of digits 4 and 5. e.g. 12306 is a valid value") 
    } else { 
    console.log("Success"); 
    } 
} 

validateId("12306"); 

예 -

0

http://plnkr.co/edit/vtrU8Hs4Bv6FJS1qFnKn?p=preview 그래서 내가 다음 코드로 작업 얻을 관리 : 당신이`custid`와`custId`을 혼합

function processData(){ 
    var custId = document.getElementById("custid").value; 
    var custName = document.getElementById("custname").value; 
    var ticketType = document.getElementById("tickettype").value; 
    var ticketQty = document.getElementById("qty").value; 
    var delType = document.getElementById("delivtype").value; 
    validateId(custId); 

function validateId(custId){ 
    if(!custId){ 
     output = "Customer ID cannot be blank"; 
     addToOutput(); 
     return false;} 

    if(custId.length != 5){ 
     output = "Customer ID must be 5 digits in length"; 
     addToOutput(); 
     return false;} 

    if(isNaN(custId)){ 
     output = "Customer ID must be numeric"; 
     addToOutput(); 
     return false;} 

    var custId2 = custId; 
    var custId3 = custId; 

    custId2 = custId.substring(0,3); 
    custId3 = custId.substring(3,5); 

    custId = custId.split(''); 
    var sum = 0; 
    var sum2 = 0; 

    for (var i = 0; i < custId2.length; i++){ 
     sum += parseInt(custId2[i],10); 
    } 

    for (var i2 = 0; i2 < custId3.length; i2++){ 
     sum2 += parseInt(custId3[i2],10); 
    } 

    if(sum !== sum2){ 
     output = "ID error. The first three digits must sum to the value of digits 4 and 5. e.g. 12306 is a valid value"; 
     addToOutput(); 
     return false;} 

    output = "Customer ID Valid!" 
    addToOutput(); 
    return true; 
} 
관련 문제