gpt4 book ai didi

javascript - 包含 "."的数字问题,例如 1.11 或 .111

转载 作者:行者123 更新时间:2023-11-30 19:06:54 25 4
gpt4 key购买 nike

用户需要在文本框中输入一个 0 到 9999 之间的数字,我想检查这个字符串是否是 0 到 9999 之间的有效整数。如果用户在文本框中输入多个数字,例如16 和 1 那么验证应该返回 false。

如果有“.”,我会遇到问题。在字符串中。 1.11 返回 true 但它应该返回 false 并且 .111 更改为 0.111 并返回 true 而不是 false。我想要一个带有“。”的字符串返回假。我该怎么做?

我测试了以下情况:

0 returns true
1117 returns true
9999 returns true
17000 returns false
0,1 returns false
A1 returns false
16 1 returns false
16_1 returns false
1.11 returns true but it should return false
.111 returns true but it should return false

1.11 和 .111 无法正常工作,因为它们返回 true 而不是 false。

代码有什么问题?

handlers.CheckTextboxstring = function (args, context)
{
var TextboxNumber = validate(args.Textboxstring);
return TextboxNumber.NewNumber;
}

function validate(str)
{
if(!isEmptyOrSpaces(str))
{
let num=Number(str);
if(num!==NaN)
{
if(num >= 0 && num <= 9999)
{
return{NewNumber: "true, number is in range."};
}
else
{
return{NewNumber: "false, number not in range."};
}
}
else
{
return{NewNumber: "false, string is NaN."};
}
}
else
{
return{NewNumber: "false, the string is not a number."};
}
}

function isEmptyOrSpaces(str)
{
return str === null || str.match(/^ *$/) !== null;
}

最佳答案

您可以使用正则表达式查找一到四位数字。

function check(s) {
return /^([1-9]\d{0,3}|0)$/.test(s);
}

['0', '1117', '9999', '17000', '0,1', 'A1', '16 1', '16_1', '1.11', '.111', '1.0', '00'].map(s => console.log(check(s)));

关于javascript - 包含 "."的数字问题,例如 1.11 或 .111,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58893628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com