pat*_*tad 275 javascript numbers digits
我想检查一个string只包含数字.我用过这个:
var isANumber = isNaN(theValue) === false;
if (isANumber){
..
}
Run Code Online (Sandbox Code Playgroud)
但意识到它也允许+和-.基本上,我想确保一个input只包含数字而不包含其他字符.由于+100和-5都是数字,isNaN()不是正确的方法.也许我需要一个正则表达式?有小费吗?
Sco*_*den 563
怎么样
var isnum = /^\d+$/.test(val);
Run Code Online (Sandbox Code Playgroud)
bal*_*ton 16
String.prototype.isNumber = function(){return /^\d+$/.test(this);}
console.log("123123".isNumber()); // outputs true
console.log("+12".isNumber()); // outputs false
Run Code Online (Sandbox Code Playgroud)
Adi*_*Sai 10
如果您想要支持浮点值(点分隔值),那么您可以使用以下表达式:
var isNumber = /^\d+\.\d+$/.test(value);
Run Code Online (Sandbox Code Playgroud)
function isNumeric(x) {
return parseFloat(x).toString() === x.toString();
}
Run Code Online (Sandbox Code Playgroud)
虽然这将返回false带有前导或尾随零的字符串。
这是不使用正则表达式的解决方案:
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
}
Run Code Online (Sandbox Code Playgroud)
其中 48 和 57 分别是“0”和“9”的字符代码。
小智 5
这就是你想要的
function isANumber(str){
return !/\D/.test(str);
}
Run Code Online (Sandbox Code Playgroud)
这是检查字符串是否仅包含数字的另一种有趣且易读的方法。
此方法通过使用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!')); // falseRun Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
305684 次 |
| 最近记录: |