How to validate a password with my following condition? Any function?(如何使用以下条件验证密码?有什么功能吗?)
问题描述
- 必须是大写字母.
- 它必须包含至少一个数字.
- 必须包含标点符号.
- 字符串中不能有密码"一词.
- 必须长于 7 个字符且短于 31 个字符.
例子
输入:passWord123!!!!"
Input: "passWord123!!!!"
输出:假
输入:turkey90AAA="
Input: "turkey90AAA="
输出:真
我尝试了以下代码,
func SimplePassword(_ str: String) -> String {
let password = self.trimmingCharacters(in: CharacterSet.whitespaces)
let passwordRegx = "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&<>*~:`-]).{8,}$"
let passwordCheck = NSPredicate(format: "SELF MATCHES %@",passwordRegx)
return passwordCheck.evaluate(with: password)
return str
}
推荐答案
这是一个验证密码的非正则表达式变体,我认为它比正则表达式解决方案更易于阅读和维护.
Here is a non-regex variant for validating the password, I would argue that it is easier to read and maintain than a regular expression solution.
func isValid(password: String) -> Bool {
return (8...30).contains(password.count) &&
password.rangeOfCharacter(from: .uppercaseLetters) != nil &&
password.rangeOfCharacter(from: .decimalDigits) != nil &&
password.rangeOfCharacter(from: .punctuationCharacters) != nil &&
!password.lowercased().contains("password")
}
请注意,在您的示例中,您说turkey90AAA="应返回 true,但="不是标点符号,因此上述代码不会接受它.相反,这个字符是一个符号,所以如果你想包含它,那么还要添加对 .symbols
字符集的检查,password.rangeOfCharacter(from: .symbols) != nil
Note that in your example you say that "turkey90AAA=" should return true but '=' is not a punctuation mark so the above code will not accept it. Instead this character is a symbol so if you want to include it then also add a check against the .symbols
character set, password.rangeOfCharacter(from: .symbols) != nil
这篇关于如何使用以下条件验证密码?有什么功能吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何使用以下条件验证密码?有什么功能吗?
基础教程推荐
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01