做了一个sqrt()
我如何检查结果是否只包含整数?
我在想Regex要检查一个小数 - 如果它包含一个小数,这意味着它没有均匀地整数到整数。哪个对我来说足够了。
但是这段代码不起作用......
result = sqrt(stringContainingANumber);
decimal = new RegExp(".");
document.write(decimal.test(result));
我敢打赌,还有其他方法可以完成同样的事情。
答案 0 :(得分:7)
。意味着任何炭。 你必须引用点。 “\”。
或者你可以测试
if (result > Math.floor(result)) {
// not an decimal
}
答案 1 :(得分:3)
您可以使用%
运算符:
result % 1 === 0; // rest after dividing by 1 should be 0 for whole numbers
答案 2 :(得分:1)
“”。在正则表达式语法中有意义,你需要使用“\”来逃避它。
答案 3 :(得分:1)
使用indexOf()
:
var myStr = "1.0";
myStr.indexOf("."); // Returns 1
// Other examples
myStr.indexOf("1"); // Returns 0 (meaning that "1" may be found at index 0)
myStr.indexOf("2"); // Returns -1 (meaning can't be found)
答案 4 :(得分:0)
如果它是一个字符串,我们可以使用split函数,然后检查返回的数组的长度。如果它超过1它有小数点否则不:)。这对于数字不起作用:(。请参阅最后一次编辑。它现在也适用于字符串:)
function checkDecimal() {
var str = "202.0";
var res = str.split(".");
alert(res.length >1);
var str1 = "20";
alert(str1.split(".").length>1);
}
希望它有所帮助。 快乐学习:)
答案 5 :(得分:0)
您正在寻找包含十进制数字的检查字符串, 你可以试试这个
var num = "123.677";
if (!isNaN(Number(num)) {
alert("decimal no");
}
else {
alert("Not a decimal number");
}