単一の数値を収集する必要があるフィールドがあります
<input type="text" patern="" name="number" required="required" />
現在、値は 1 ~ 9999 のいずれでもかまいませんが、許可していない数字がいくつかあります。
15
21
532
この数字のいずれかが入力された場合にフォーム送信を強制的に失敗させるために使用できる正規表現パターンはありますか?
単一の数値を収集する必要があるフィールドがあります
<input type="text" patern="" name="number" required="required" />
現在、値は 1 ~ 9999 のいずれでもかまいませんが、許可していない数字がいくつかあります。
15
21
532
この数字のいずれかが入力された場合にフォーム送信を強制的に失敗させるために使用できる正規表現パターンはありますか?
if , , value of , usingに設定type="submit"
してみてくださいdisabled
15
21
532
input type="number"
String.prototype.match()
var input = document.querySelector("input[type=number]")
var label = document.querySelector("[for=number]");
input.oninput = function() {
var val = this.value;
var matches = ["15","21","532"];
var match = matches.indexOf(val) !== -1;
this.nextElementSibling.disabled = match;
this.style.color = match ? "red" : "inherit";
label.innerHTML = match ? "Invalid number: <mark style=color:red>"
+ val + "</mark>"
: "";
}
<form>
<input type="number" min="1" max="9999" pattern="" name="number" required="required" id="number" />
<input type="submit" /><br />
<label for="number"></label>
</form>
function isValidNumber(num){
if (isNaN(+num))
return false;
var cant_match = [ 15, 21, 532 ];
return !( cant_match.indexOf(+num) >= 0 );
}
// Example call
isValidNumber( document.querySelector("input[name=number]").value );
ものすごく単純:
isNaN(+num)
関数に渡された値が実数または整数以外の場合は失敗します (たとえば、'32 456' は失敗します)。