私はtextarea
を使用しています。数字、カンマ、およびスペースを受け入れたいだけです。私が達成しようとしているのは、ユーザーが許可しない以外のものを入力した場合です。例えばキーアップイベントで不要な文字をstring.emptyに置き換えるにはどうすればいいですか?
、
123 is valid
123a should be 123
1a23v should be 123
は、私は次のようなアプローチが、運を試してみました。
アプローチ-1:これは私に本当の偽を与えますが、最後のエントリを削除する方法がわかりません。
$("#my-text-area").on("keyup", function(value) {
var regex = new RegExp(/^[0-9, ]*$/);
var input = this.value;
var new_value = regex.test(input);
alert(new_value);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="my-text-area"></textarea>
アプローチ-2:私は、私が使用している正規表現は、私が欲しいものを検証することを知っているsubString
$("#my-text-area").on("keyup", function(value) {
var regex = new RegExp(/^[0-9, ]*$/);
if (!regex.test(this.value)) {
var inputString = this.value;
//alert(inputString);
var updatedString = inputString.substr(0, inputString.length - 1)
alert(updatedString);
$("my-text-area").val(updatedString);
} else {
alert("Valid");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="my-text-area"></textarea>
を使用します。
$("#my-text-area").on("keyup", function(value) {
var regex = new RegExp(/^[0-9, ]*$/);
if (!regex.test(this.value)) {
alert("Invalid");
} else {
alert("Valid");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="my-text-area"></textarea>
'keydown'イベントではなく、' keyup'を使用してください。 –
しないでください。それは悪いユーザー体験です。ユーザーはキーボードが壊れていると感じるかもしれません。代わりに、submitの入力をチェックし、エラーメッセージを表示してください。 –