我想检查 a 是否string
只包含数字。我用这个:
var isANumber = isNaN(theValue) === false;
if (isANumber){
..
}
但意识到它也允许+
and -
。基本上,我想确保一个input
只包含数字而不包含其他字符。由于+100
和-5
都是数字,isNaN()
因此不是正确的方法。也许我需要一个正则表达式?有小费吗?
我想检查 a 是否string
只包含数字。我用这个:
var isANumber = isNaN(theValue) === false;
if (isANumber){
..
}
但意识到它也允许+
and -
。基本上,我想确保一个input
只包含数字而不包含其他字符。由于+100
和-5
都是数字,isNaN()
因此不是正确的方法。也许我需要一个正则表达式?有小费吗?
怎么样
let isnum = /^\d+$/.test(val);
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
如果你甚至想支持浮点值(点分隔值),那么你可以使用这个表达式:
var isNumber = /^\d+\.\d+$/.test(value);
这是检查字符串是否仅包含数字的另一种有趣且易读的方法。
此方法通过使用扩展运算符将字符串拆分为数组,然后使用该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
这就是你想要的
function isANumber(str){
return !/\D/.test(str);
}
这是一个不使用正则表达式的解决方案:
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
带有前导或尾随零的字符串。
好吧,您可以使用以下正则表达式:
^\d+$
如果您需要在同一验证中使用整数和浮点数
/^\d+\.\d+$|^\d+$/.test(val)
如果你想包含浮点值,你也可以使用下面的代码
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,因此 .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
const isdigit=(value)=>{
const val=Number(value)?true:false
console.log(val);
return val
}
isdigit("10")//true
isdigit("any String")//false
c="123".match(/\D/) == null #true
c="a12".match(/\D/) == null #false
如果字符串只包含数字,它将返回 null