我一直在尝试编写一个函数来验证给定的 Double 是否是 1-100 之间的数字。而且只能是整数,所以像 1.5 这样的数字是不允许的。允许的值为 1,2,3,...,100。我正在使用以下正则表达式 ->
"^([1-9][0-9]?$)|^100$"
但是,即使我输入 100,我的函数也永远不会返回 true。我的正则表达式在哪方面是错误的?
这是我的其余代码
func validate(input: Double) -> Bool {
let regex = "^([1-9][0-9]?$)|^100$"
let inputTest = NSPredicate(format: "SELF MATCHES %@", regex)
return inputTest.evaluate(with: String(input))
}
输入必须是 double 型。
最佳答案
您不需要正则表达式或谓词。只需进行一些基本检查,如下所示:
func validate(input: Double) -> Bool {
return input >= 1 && input <= 100 && round(input) == input;
}
关于ios - 使用正则表达式检查 Double 值是否具有某种格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40962091/