2016-08-19 3 views
-1

私のテキストボックスでは、整数値のみを許可し、コンマはjavascriptを使用して制御します。次に疑問をどのようにカンマ以上に制御するか(1,2,3,4) ok then 1,2,3、、4、、5必要があります。JavaScriptで可能です。複数のコンマがjavascriptを使用して制限しています

<p:inputText onKeyPress="onlyAllowDigitComma(event);"/> 
+0

あなたはただAllowDigitComma機能コードを提供できますか? – Ruhul

+0

誰もがネイティブの英語のスピーカーではないことを理解していますが、標準的な国際的な英語はこの意味で「疑念」を使用していません。また、完全停止後にスペースを置き、 "it's"( "it is"の略語)のような単語でアポストロフィを使用します。言語の正しい大文字は "JavaScript"です。 –

答えて

0

入力を検証するために正規表現を使用してください。あなたが最初に得たマッチが入力全体と同じであれば、あなたはいいですね。

あなたが探している正規表現を簡単にするために/(\d,?)*/gTest Link

ですが、私はショートカットの問題を回避するには「からkeyup」イベントに以下のコードをしました。また、コピー/ペーストイベントをチェックすることもできます。

let myInput = document.getElementById('myInput'); 
let myInputValue = myInput.value; 

myInput.addEventListener('keyup', function(event){ 
    if(isPerfectMatch(myInput.value, /(\d,?)*/g)){ 
    console.log('Format is correct.'); 
    myInputValue = myInput.value; 
    } 
    else { 
    console.log('Wrong format'); 
    myInput.value = myInputValue; 
    } 
}); 

function isPerfectMatch(value, regex){ 
    let match = value.match(regex); 
    return match !== null && match[0] == value; 
} 

Demo JSFiddle

0

あなたの答えはあなたのソリューションで行くどこまで表示されません。私はコードがあなたが望むものだと思う、私はあなたが開始と終了から昏睡を取り除く必要があると思います。

<input type="text" onkeypress="onlyAllowDigitComma(event,this);" onkeyup="onlyAllowDigitComma(event,this);"/> 
<script> 
function onlyAllowDigitComma(e,l){ 
    var k = e.which; 
    if ((k <= 47 || k >= 58) && k!=44 && k!=8 && k!=0) { 
     e.preventDefault() 
    }; 
    l.value=l.value.replace(/,,/g,','); 
} 
</script> 
関連する問題