2016-04-20 12 views
1

Ich benutze das SwiftValdator-Framework für iOS-Entwicklung. Ich habe eine benutzerdefinierte Validator-Klasse mit einem Regex erstellt.Fehler mit schnellen Regex mit Swiftvalidator?

Der Fehler ist:

'NSInternalInconsistencyException', reason: 'Can't do regex matching, reason: Can't open pattern U_REGEX_MISSING_CLOSE_BRACKET (string lol, pattern ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[,.:=+-_|)(%$#@!£/?';&"\])[A-Za-z0-9,.:=+-_|)(%$#@!]£/?';&"\]{8,32}, case 0, canon 0)'

Dies ist mein Code:

import Foundation 
import SwiftValidator 

class CustomPasswordRule: RegexRule { 
    //^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[,.:=+\-_|)(%$#@!£/?`;&"\\])[A-Za-z\d,.:=+\-_|)(%$#@!£/?`;&"\\]{8,32} 
    static let regex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[,.:=+-_|)(%$#@!£/?';&\"\\])[A-Za-z0-9,.:=+-_|)(%$#@!]£/?';&\"\\]{8,32}" 

    convenience init(message: String = "Not a valid Password") { 
     self.init(regex: CustomPasswordRule.regex,message: message) 
    } 
} 

Kann mir jemand mit dem Fehler helfen? Dies sind die folgenden Bedingungen:

  1. Das Passwort muss zwischen 8 und 32 Zeichen lang sein.
  2. Passwort muss alle drei der folgenden Zeichen Kombinationen enthalten:
    • 1 Versalien (capital) letter [AZ]
    • 1 Kleinbuchstaben (gemeinsam) letter [az]
    • 1 Nummer [0-9]
    • 1 Symbol [,. : = + - _ | !?) (% $ # @ £/\ `; &„]
+0

http: // stackoverflow.com/q/31954416/2303865 –

Antwort

1

Die Regex in der "" umgewandelt wird, nicht korrekt, versuchen Sie dies:

static let regex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[,.:=+\\-_|)(%$#@!£/?`;&\"\\\\])[A-Za-z\\d,.:=+\\-_|)(%$#@!£/?`;&\"\\\\]{8,32}"