我想检查string是否只包含数字。我用了这个:
string
var isANumber = isNaN(theValue) === false; if (isANumber){ .. }
+
-
input
+100
-5
isNaN()
如何
let isnum = /^\d+$/.test(val);
你可以使用下面的正则表达式:
^\d+$
string.match(/^[0-9]+$/) != null;
String.prototype.isNumber = function(){return /^\d+$/.test(this);} console.log("123123".isNumber()); // outputs true console.log("+12".isNumber()); // outputs false
这就是你想要的
function isANumber(str){ return !/\D/.test(str); }
如果你想支持浮点值(点分隔值),那么你可以使用这个表达式:
var isNumber = /^\d+\.\d+$/.test(value);
这里有一个不使用正则表达式的解决方案:
function onlyDigits(s) { for (let i = s.length - 1; i >= 0; i--) { const d = s.charCodeAt(i); if (d < 48 || d > 57) return false } return true }
其中48和57分别是“0”和“9”的字符代码。
function isNumeric(x) { return parseFloat(x).toString() === x.toString(); }
虽然这将返回false字符串的前导或尾端为0。
false
这里有另一种有趣的、可读的方法来检查字符串是否只包含数字。
此方法通过使用传播算子将字符串分割为一个数组,然后使用every()方法测试数组包括中的所有元素(字符)在数字字符串'0123456789'中:
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
c="123".match(/\D/) == null #true c="a12".match(/\D/) == null #false
如果字符串只包含数字,它将返回null
如果你想包含浮点值,也可以使用下面的代码
theValue=$('#balanceinput').val(); var isnum1 = /^\d*\.?\d+$/.test(theValue); var isnum2 = /^\d*\.?\d+$/.test(theValue.split("").reverse().join("")); alert(isnum1+' '+isnum2);
这将只测试数字和用'分隔的数字。'第一个测试将涵盖诸如0.1和0等值,但也包括。1, 它不允许为0。所以我建议的解决方案是将value颠倒,这样。1将是1。那么相同的正则表达式将不允许它
例子:
theValue=3.4; //isnum1=true , isnum2=true theValue=.4; //isnum1=true , isnum2=false theValue=3.; //isnum1=flase , isnum2=true
如果你使用jQuery:
$.isNumeric('1234'); // true $.isNumeric('1ab4'); // false
以防你需要整数和浮点数在同一个验证
/^\d+\.\d+$|^\d+$/.test(val)
const isdigit=(value)=>{ const val=Number(value)?true:false console.log(val); return val } isdigit("10")//true isdigit("any String")//false