проверить, содержит ли числовая строка десятичную? - PullRequest
2 голосов
/ 23 марта 2012

После выполнения sqrt ()

Как мне проверить, содержит ли результат только целые числа или нет?

Я думал, что Regex проверяет десятичную дробь - если она содержит десятичную дробь, это означает, что она не делится на целые числа равномерно Что было бы достаточно информации для меня.

но этот код не работает ...

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

Могу поспорить, что есть и другие способы сделать то же самое.

Ответы [ 6 ]

7 голосов
/ 23 марта 2012

.означает любой символВы должны процитировать точку."\."

Или вы можете проверить

if (result > Math.floor(result)) {
   // not an decimal
}
3 голосов
/ 23 марта 2012

Вы можете использовать оператор %:

result % 1 === 0;  // rest after dividing by 1 should be 0 for whole numbers
1 голос
/ 23 марта 2012

Использование 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)
1 голос
/ 23 марта 2012

"" имеет значение в синтаксисе регулярных выражений, что означает «все, что вам нужно, чтобы избежать его с помощью« \ ».

0 голосов
/ 11 декабря 2015

Вы ищете проверку строки, содержащей десятичные цифры, вы можете попробовать вот так

var num = "123.677";
if (!isNaN(Number(num)) {
alert("decimal no");
}
else {
alert("Not a decimal number");
}
0 голосов
/ 13 августа 2015

Если это строка, мы можем просто использовать функцию split и затем проверить длину возвращаемого массива. Если его больше 1, он имеет десятичную точку, иначе нет :). Хотя это не работает для чисел :(. Пожалуйста, посмотрите последнее редактирование. Теперь это работает и для строки:)

function checkDecimal() {
    var str = "202.0";
    var res = str.split(".");
    alert(res.length >1);
    var str1 = "20";

    alert(str1.split(".").length>1);
 }

Надеюсь, это кому-нибудь поможет. Счастливого обучения:)

...