2017-12-19 12 views
0

공백이있는 숫자에 대해 고유 한 입력 번호 마스크를 구분 기호로 사용하고 십진수는 사용하지 않으려 고합니다. 양수와 음수 모두 허용됩니다. 지금까지의 해결책. 한 가지 문제, 마이너스 기호 (입력 필드는 비어 있거나 0이어야 함)와 마이너스 기호를 허용하지 않는 방법은 무엇입니까? 다른 모든 제안은 코드를 향상시키는 방법입니까? 입력 번호 마스크 - 빼기 부호 금지

+0

어떻게 방지 할 수 있는지 확실하지 않으면 2 이후에 유효성 검사를 실행할 수 있습니다. 그것이 유효한지를 알기위한 키 입력. 그리고 코드는 붙여 넣기를 처리해야합니다. – epascarello

+0

@epascarello 내가 보는대로 붙여 넣기를 처리합니다. 나는 "asdf"를 붙여서 전체 문자열을 제거했습니다. –

+0

@ J.C.Rocamonde는 Ctrl + V를 사용한다고 생각하니? – epascarello

답변

0

function thousandany(x) { 
 
    return x 
 
    .replace(/(?!-)\D+/g, '') //ta bort alla utom nummer 
 
    .toString().replace(/\B(?=(\d{3})+(?!\d))/g, " "); 
 
} 
 

 
$(document).ready(function() { 
 
    $("input").keyup(function() { 
 
    $(this).val(thousandany($(this).val())); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input style="text-align:right">

은 정말 정규식에 대해 잘 모르겠지만, 당신의 UX는 매우 사용자 친화적이고 쾌적한 보이지 않는다. 데이터가 제대로 작동하는지 확인하기 위해 추가 검증을 실행하는 것이 좋습니다. 사용자는 오른쪽에 입력 만해야합니다. 입력 한 텍스트를 변경하려는 경우 20 개의 숫자가있는 경우 첫 번째 문자를 변경하기 위해 모두 삭제해야합니다. 내가 말했듯이

내가 (그래서 짜증이되지 않음) 데이터를 입력 완료 한 사용자 후 코드 에 유효성 검사를 실행하려면, 다른 방법으로,

추천 할 것입니다 , 또는 예를 들어, 그것은 밖으로 초점을 맞출 때 입력의. 사용자가 바보가 아니라, 예를 들어 양수, 즉 정수를 입력해야한다고 말하면 그에 따라 입력을 변경합니다. 끊임없이 자신의 입력을 속이려면 실제로 성가신 일이 생길 수 있습니다. 특히 이미 작성한 텍스트는 변경할 수 없습니다.

정수인지 여부, 양수인지 여부 등 유효한 숫자인지 여부를 확인할 수 있습니다. 그런 식으로 입력을 강요하는 것보다 훨씬 의미가 있으며, 코드를 작성합니다. 훨씬 더 복잡합니다. 제 의견으로는 불필요합니다.

또한 글자를 사용하는 과학 표기법 (고려해야 할)과 같은 다른 측면이 있으며, 전혀 구현하지 않으려면 훨씬 복잡한 정규 표현식이 필요하다는 것을 잊지 마십시오.

물론이 질문에 직접 대답하지 않는다는 것을 알고 있습니다. 그러나 노력하는 것이 완전히 필요하거나보다 효율적인 방법을 따라갈 수 있다면 다시 생각하게 만들 수 있습니다.

사용자가 밖으로 초점을 맞추고 또는 특정 버튼을 클릭 한 후 당신이 그것을 할 수있는 방법의 예는 다음과 같습니다 물론

$(document).ready(startCheck) 

function startCheck() { 

    $("#myInputField").focusout(checkData) 
    %("#myButton").click(checkData) 
} 

function checkData() { 
    var data = $("#myInputField").val(); 
    if $.isNumeric(data) { 
     // do something 
    } else { 
     alert("Please input a number") 
} 

하면, 사용자의 편의에 변경할 수보다 사용자 친화적 할 입력이 올바르지 않다는 것을 알려주고 정수 만 전달할 것인지 아니면 양수 값을 전달할 것인지 등을 조정할 수 있습니다.

+0

좋은 의견, 감사합니다. –