Javascript 检查数字字符串是否包含小数?
在执行sqrt()之后 如何检查结果是否只包含整数 我想用正则表达式来检查小数点——如果它包含小数点,那就意味着它不是均匀地进入整数的根。这对我来说已经足够了 但是这个代码不起作用Javascript 检查数字字符串是否包含小数?,javascript,regex,math,decimal,sqrt,Javascript,Regex,Math,Decimal,Sqrt,在执行sqrt()之后 如何检查结果是否只包含整数 我想用正则表达式来检查小数点——如果它包含小数点,那就意味着它不是均匀地进入整数的根。这对我来说已经足够了 但是这个代码不起作用 result = sqrt(stringContainingANumber); decimal = new RegExp("."); document.write(decimal.test(result)); 我打赌还有其他方法可以完成同样的事情。“”在正则表达式语法中有其含义,即使用“\”转义所需的“任何东西”
result = sqrt(stringContainingANumber);
decimal = new RegExp(".");
document.write(decimal.test(result));
我打赌还有其他方法可以完成同样的事情。“”在正则表达式语法中有其含义,即使用“\”转义所需的“任何东西”。使用:
您可以使用
%
运算符:
result % 1 === 0; // rest after dividing by 1 should be 0 for whole numbers
。表示任何字符。
你必须引用点。“\”
或者你可以测试一下
if (result > Math.floor(result)) {
// not an decimal
}
如果是字符串,我们可以使用split函数,然后检查返回的数组的长度。如果大于1,则有小数点,否则不为:)。但这不适用于数字:(.请参阅上次编辑。它现在也适用于字符串:) 希望它能帮助别人。
快乐学习:)您是否正在查找包含十进制数字的检查字符串, 你可以这样试试
var num = "123.677";
if (!isNaN(Number(num)) {
alert("decimal no");
}
else {
alert("Not a decimal number");
}
+1用于使用
.indexOf()
而不是正则表达式,因为对于这个特定问题,它比正则表达式更简单、更快。但是,我假设result
在这里已经是一个数字,因为它是sqrt()
函数的结果。我不确定你是否解决了OP的问题。@jfriend00:接得好。那么我想使用%
操作符就更直接了。这对我来说是最有意义的。谢谢你,伙计!当然,因为javascript数字是一个双精度数字,大约有15位精度。因此,您必须注意某些结果范围内的数值误差,大约为“42.00”
function checkDecimal() {
var str = "202.0";
var res = str.split(".");
alert(res.length >1);
var str1 = "20";
alert(str1.split(".").length>1);
}
var num = "123.677";
if (!isNaN(Number(num)) {
alert("decimal no");
}
else {
alert("Not a decimal number");
}