首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TextField大小写验证

问TextField大小写验证
EN

Stack Overflow用户
提问于 2019-05-28 19:02:49
回答 4查看 756关注 0票数 1

我正在工作的文本字段验证和困惑如何验证文本字段必须包含至少1个字符从所有以下类别:英文大写字符(A - Z)。英文小写字符(a - z)。

EN

回答 4

Stack Overflow用户

发布于 2019-05-28 19:21:36

看一下CharacterSets (描述为here)

您可以创建各种字符集(例如小写字母),并测试字符串是否包含与所述字符集匹配的内容。

因此,您可以创建一个返回布尔值的函数。该函数根据两个CharacterSet检查字符串,只有当这两个都在字符串中时,该函数才返回true。

像这样的东西

代码语言:javascript
复制
func validate(string: String) -> Bool {
    let lowercase = CharacterSet.lowercaseLetters
    let uppercase = CharacterSet.uppercaseLetters

    let lowercaseRange = string.rangeOfCharacter(from: lowercase)
    let uppercaseRange = string.rangeOfCharacter(from: uppercase)

    return lowercaseRange != nil && uppercaseRange != nil
}

validate(string: "Hello") //returns true
validate(string: "hello") //returns false
validate(string: "HELLO") //returns false

查看来自NSHipster的this article了解更多信息。

票数 1
EN

Stack Overflow用户

发布于 2019-05-28 19:25:40

图片来源:TextField uppercase and lowercase validation

以下是条件的regext :-至少8个字符,1个大写字母和1个数字。

^(?=.a-z)(?=.A-Z)(?=.\d)(?=.[$@$!%?&])[A-Za-z\d$@$!%?&]{8,}

代码语言:javascript
复制
extension String {
func isValidPassword() -> Bool {
    let regularExpression = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[$@$!%*?&])[A-Za-z\\d$@$!%*?&]{8,}"
    let passwordValidation = NSPredicate.init(format: "SELF MATCHES %@", regularExpression)

    return passwordValidation.evaluate(with: self)
    }
}

//Example 1

var password = "@Abcdef011" //string from UITextField (Password)
password.isValidPassword() // -> true

//Example 2

var password = "wer011" //string from UITextField 
password.isValidPassword() // -> false
票数 1
EN

Stack Overflow用户

发布于 2019-05-28 19:28:12

代码语言:javascript
复制
func isValidPassword(testStr:String?) -> Bool {
    guard testStr != nil else { return false }
 
    // at least one uppercase, 
    // at least one lowercase
    // 8 characters total
    let passwordTest = NSPredicate(format: "SELF MATCHES %@", "(?=.*[A-Z])(?=.*[a-z]).{8,}")
    return passwordTest.evaluate(with: testStr)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56340772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档