检查数字字符串是否包含小数?

时间:2012-03-23 11:57:54

标签: javascript regex math decimal sqrt

做了一个sqrt()

我如何检查结果是否只包含整数?

我在想Regex要检查一个小数 - 如果它包含一个小数,这意味着它没有均匀地整数到整数。哪个对我来说足够了。

但是这段代码不起作用......

result = sqrt(stringContainingANumber);
decimal = new RegExp(".");
document.write(decimal.test(result)); 

我敢打赌,还有其他方法可以完成同样的事情。

6 个答案:

答案 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");
}