Answers:
怎么样
var 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));
如果您甚至想要支持浮点值(点分隔值),则可以使用以下表达式:
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);
}
如果要包含浮点值,也可以使用以下代码
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。因此,我建议的解决方案是反转theValue,使.1为1。然后相同的正则表达式将不允许它。
例如:
theValue=3.4; //isnum1=true , isnum2=true
theValue=.4; //isnum1=true , isnum2=false
theValue=3.; //isnum1=flase , isnum2=true
c="123".match(/\D/) == null #true
c="a12".match(/\D/) == null #false
如果字符串仅包含数字,则将返回null