我面临以下(基本)问题:我想检查来自 HTML 输入字段的输入是否不大于 5 或不是数字。如果给出这个函数应该返回true。否则(所以如果大于 5 或一个数字)它应该返回 false。到目前为止,如果数字不大于 5 的验证工作正常,但是当我添加 typeof-argument 时,这个验证不起作用。 到目前为止,这是我的代码,提前致谢!
function isValidStart(start) {
if (start.trim().length > 5 || typeof(start) === 'number') {
return false
}
return true
答案 0 :(得分:1)
Element.value
(输入、选择、文本区域等)将始终是字符串。
测试是否可以使用一个小的正则表达式和 RegExp.prototype.test() 来实现使用一位数的整数范围。
const isValidStart = v => /^\d{1,5}$/.test(v); // or use [0-5]
console.log(isValidStart("1")) // true
console.log(isValidStart("55555")) // true
console.log(isValidStart(2)) // true
console.log(isValidStart("a12")) // false
您甚至不必关心值是字符串还是数字。
匹配范围为 1 到 5 的单个数字:
const isValidStart = v => /^[1-5]$/.test(v); // or use [0-5]
console.log(isValidStart("1")) // true
console.log(isValidStart(2)) // true
console.log(isValidStart("a")) // false
console.log(isValidStart("6")) // false
答案 1 :(得分:0)
您可以使用 Number.isFinite()
函数来检查变量是否为有限数,这在您的用例中应该完成这项工作。
let intVar = 2;
Number.isFinite(intVar);
$true
但是看起来您的 start
变量实际上不是数字,因为您不能在数字上调用 .trim()
。所以这个 if 语句永远不会返回 True。
您应该对变量进行类型转换。 https://www.w3schools.com/js/js_type_conversion.asp
答案 2 :(得分:0)
minimize(obj, x, args=(args, ), method='L-BFGS-B', callback=callback)
args = 0
def callback(xk):
global args
args = args + 1
...