没有特殊字符的字母数字RegEx iOs

我的密码强度标准如下:

8个字符长度无特殊字符至less1个数字至less1个字母

更新: Xcode 8.3.2•Swift 3.1

enum PasswordError: String, Error { case needsAtLeastEightCharacters case needsAtLeastOneLetter case needsAtLeastOneDecimalDigit } extension String { func validatePassword() throws { guard characters.count > 7 else { throw PasswordError.needsAtLeastEightCharacters } guard rangeOfCharacter(from: .letters) != nil else { throw PasswordError.needsAtLeastOneLetter } guard rangeOfCharacter(from: .decimalDigits) != nil else { throw PasswordError.needsAtLeastOneDecimalDigit } } } 

 let myPass = "12345678" do { try myPass.validatePassword() print("valid password action") } catch let error as PasswordError { print("Password error:", error) // Password error: needsAtLeastOneLetter switch error { case .needsAtLeastEightCharacters: print("NeedsAtLeastEightCharacters action") case .needsAtLeastOneLetter: print("NeedsAtLeastOneLetter action") // NeedsAtLeastOneLetter action case .needsAtLeastOneDecimalDigit: print("NeedsAtLeastOneDecimalDigit action") } } catch { print("error:", error) } 

尝试这个:

 ^(?=.*\d)(?=.*[a-zA-Z]).{8,}$ 

要么

 ^(?=.*\d)(?=.*[a-zA-Z])(?!.*[\W_\x7B-\xFF]).{8,}$ 

第一个不关心特殊字符,第二个不允许他们。