Ich habe versucht, eine Funktion zu schreiben, die eine gegebene Doppelprüft, ob eine Zahl zwischen 1-100 ist. Und nur ganze Zahlen, so etwas wie 1.5 wäre nicht erlaubt. Erlaubt wäre 1,2,3, ..., 100. Ich verwende den folgenden regulären Ausdruck für das ->überprüfen Sie, ob ein Double-Wert von einem bestimmten Format mit Regex ist
"^([1-9][0-9]?$)|^100$"
jedoch, auch wenn ich Eingang 100, meine Funktion gibt mir nie wieder wahr. In welcher Weise ist meine Regex falsch?
dies ist der Rest meines Code
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))
}
die Eingabe ein Doppel sein muss.
Warum verwenden Sie Regex und ein Prädikat dafür? Konvertieren Sie die Zeichenfolge in ein "Double". Wenn das gelingt, dann prüfe den Wert des 'Double'. – rmaddy
BTW - warum 'Double'? Klingt so, als ob du nur ganze Zahlen willst. '3.14' ist ein Doppel zwischen 1 und 100. – rmaddy
Und klären was" Eingabe "ist. – rmaddy