我创建了一个函数来检查传递的参数是整数还是浮点数。但由于某些原因,当我传入一个字符串时它会继续返回true。我不明白这是怎么发生的?
如果有人能帮我解决这个问题,我会非常感激
function isNumeric(val){
var patt = new RegExp('^[0-9]+$');
return (patt.test(val) || Math.floor(val) !== val);
}
console.log(isNumeric("Hello")); //Returns true??
答案 0 :(得分:0)
此外,您可以参考下面的小提琴。正则表达式模式是成功的,但Math.floor()评估是有问题的。
https://jsfiddle.net/joedonahue/8uw0cr4y/1/
function isNumeric(val){
var patt = new RegExp('^[0-9]+$');
return (patt.test(val));
//return Math.floor(val) !== val;
}
alert(isNumeric("Hello")); //Returns true??
答案 1 :(得分:0)
传入字符串时,您有以下表达式:
patt.test("Hello") || Math.floor("Hello") !== "Hello"
然后成为:
false || NaN !== "Hello"
然后成为:
false || true
如果||
的任何一个参数都是真实的,那么true
会返回一个真值,这会返回var merged = new List<Item>(items1);
merged.AddRange(items2);
IEnumerable<Item> grouped = merged
.GroupBy((item) => new { item.Country, item.State, item.City, item.date })
.Select((item) => item.OrderByDescending(i => i.population).FirstOrDefault());
foreach(Item item in grouped)
{
Console.WriteLine($"{item.Country}, {item.State}, {item.City}, {item.date}, {item.population}");
}
。
请参阅Is there a (built-in) way in JavaScript to check if a string is a valid number?了解如何正确执行检查。