0
与えられたDoubleが1-100の間の数値であることを検証する関数を記述しようとしています。そして整数だけなので、1.5のようなものは許されません。許可されるのは1,2,3、...、100です。私はそのために、以下の正規表現を使用しています - >Double値がRegexで特定の形式であることを確認してください
"^([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'に変換します。それが成功すれば、 'Double'の値をチェックしてください。 – rmaddy
BTW - なぜ「ダブル」ですか?あなたは整数がほしいと思うように聞こえます。 '3.14'は1から100までの倍数です。 – rmaddy
' input'が何であるかを明確にします。 – rmaddy