ios - 使用正则表达式检查 Double 值是否具有某种格式

标签 ios regex swift swift3

我一直在尝试编写一个函数来验证给定的 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/

相关文章:

java - 为什么此代码(使用正则表达式从 URL 中提取主机名)失败

删除最后一个空格之前的所有内容

objective-c - 从 Swift VC 到 Objective-C VC 的推送/执行 segue 不起作用

ios - Swift Map Kit 在解包 Optional 值时意外发现 nil

ios - Swift:在每天的设定时间之间创建重复的本地通知

ios - 推送通知到达时间

javascript - 检测字符串中的 Number、Pi 和 e

ios - 在我的应用程序中多次使用相同的代码

ios - 如何去除cocos2d运行游戏中的卡顿?

swift - 如何并行使用@State和@Binding?