回答:
いかがですか
let isnum = /^\d+$/.test(val);
\d
とまったく同じ[0-9]
です。
/^\d*$/
代わりに、数字のみを含む空の文字列が見つかった場合。
String.prototype.isNumber = function(){return /^\d+$/.test(this);}
console.log("123123".isNumber()); // outputs true
console.log("+12".isNumber()); // outputs false
isNumber = () => /^\d+$/.test(this);
代わりに検討し、次のように使用してくださいconsole.log(isNumber("123123));
float値(ドット区切り値)もサポートする場合は、次の式を使用できます。
var isNumber = /^\d+\.\d+$/.test(value);
\d+
と\d*?
、0〜9と一致し、.333などの数値も一致します
var isNumber = /^\d*\.?\d+$/.test(value)
-「3.5」、「。5」、「3」に一致します-「3」に一致しません
文字列に数字しか含まれていないかどうかを確認する、読みやすく興味深い方法を次に示します。
このメソッドは、spread演算子を使用して文字列を配列に分割することで機能し、every()
メソッドを使用して、配列内のすべての要素(文字)が数字の文字列に含まれているかどうかをテストします'0123456789'
。
const digits_only = string => [...string].every(c => '0123456789'.includes(c));
console.log(digits_only('123')); // true
console.log(digits_only('+123')); // false
console.log(digits_only('-123')); // false
console.log(digits_only('123.')); // false
console.log(digits_only('.123')); // false
console.log(digits_only('123.0')); // false
console.log(digits_only('0.123')); // false
console.log(digits_only('Hello, world!')); // false
true
、空の文字列''
、および空の配列[]
、整数の配列も返します[1, 2, 3]
(10未満の場合)。それは/^\d+$/
私が考える基本的な正規表現よりもバグ/誤用の傾向があります
これはあなたが欲しいものです
function isANumber(str){
return !/\D/.test(str);
}
function isNumeric(x) {
return parseFloat(x).toString() === x.toString();
}
ただし、これはfalse
先頭または末尾にゼロがある文字列で返されます。
float値を含める場合は、次のコードも使用できます
theValue=$('#balanceinput').val();
var isnum1 = /^\d*\.?\d+$/.test(theValue);
var isnum2 = /^\d*\.?\d+$/.test(theValue.split("").reverse().join(""));
alert(isnum1+' '+isnum2);
これは、数字と「。」で区切られた数字のみをテストします。最初のテストは0.1や0などの値をカバーしますが、0.1も0も許可しません。したがって、私が提案する解決策はtheValueを逆にすることです。
例:
theValue=3.4; //isnum1=true , isnum2=true
theValue=.4; //isnum1=true , isnum2=false
theValue=3.; //isnum1=flase , isnum2=true