检查字符串是否只包含数字
我想检查一个 "字符串 "是否只包含数字。我使用了这个方法。
var isANumber = isNaN(theValue) === false;
if (isANumber){
..
}
但我发现它也允许 "+"和"-"。基本上,我想确保一个输入'只包含数字,没有其他字符。由于
+100和
-5都是数字,
isNaN()`不是正确的方法。
也许我需要的是一个regexp?有什么建议吗?
273
10
怎么样
如果你想支持浮动值(点分隔值),那么你可以使用这个表达式。
这是你想要的
这里有另一种有趣的、可读的方法来检查一个字符串是否只包含数字。
这个方法的工作原理是使用[spread运算符][1]将字符串分割成一个数组,然后使用[
every()
][2]方法来测试数组中的所有元素(字符)是否[包含][3]在数字字符串'0123456789'
中。<!--开始片段。 js hide: false console: true babel.false --> -- begin snippet: js hide: false console: true false -->
[1]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax [2]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every [3]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes
好吧,你可以使用下面的重合词。
下面是一个不使用正则表达式的解决方案。
其中48和57分别是"0" 和"9"。
尽管这将会对带前导或尾部为零的字符串返回 "false"。
如果一个字符串只包含数字,它将返回null。