gpt4 book ai didi

ios - 在 Swift 中检查字符串是否至少包含大写字母、数字或特殊字符?

转载 作者:IT王子 更新时间:2023-10-29 05:16:28 36 4
gpt4 key购买 nike

我正在尝试创建一种方法,使用正则表达式查找字符串是否包含数字、大写字母和特殊字符,如下所示

 func checkTextSufficientComplexity(var text : String) -> Bool{


let capitalLetterRegEx = "[A-Z]+"
var texttest = NSPredicate(format:"SELF MATCHES %@", capitalLetterRegEx)
var capitalresult = texttest.evaluateWithObject("AniP")
println("\(capitalresult)")


let numberRegEx = "[0-9]+"
var texttest1 = NSPredicate(format:"SELF MATCHES %@", numberRegEx)
var numberresult = texttest1.evaluateWithObject(text)
println("\(numberresult)")


let specialCharacterRegEx = "[.*&^%$#@()/]+"
var texttest2 = NSPredicate(format:"SELF MATCHES %@", numberRegEx)

var specialresult = texttest2.evaluateWithObject(text)
println("\(specialresult)")

return capitalresult && numberresult && specialresult

}

问题是下面的正则表达式 [A-Z]+ 仅对 AVATAR 返回 true,对 Avatar 返回 false。我希望我的正则表达式在字符串中至少包含一个大写字母时返回 true。

最佳答案

只需将您的 RegEx 规则 [A-Z]+ 替换为 .*[A-Z]+.*(以及其他 RegEx 规则)

规则

[A-Z]+ matches only strings with all characters capitalized

示例:AVATAR、AVA、TAR、AAAAAA
不会工作:AVATAr

.* matches all strings (0+ characters)

示例:1、2、AVATAR、AVA、TAR、a、b、c

.*[A-Z]+.* matches all strings with at least one capital letter

示例:头像、avataR、aVatar

解释:

我。 .* 将尝试匹配 0 或更多的任何东西
二。 [A-Z]+ 将需要至少一个大写字母(因为 +)
三、 .* 将尝试匹配 0 个或多个

Avatar [empty | "A" | "vatar"]
aVatar ["a" | "V" | "atar"]
aVAtar ["a" | "VA" | "tar"]

工作代码

func checkTextSufficientComplexity(var text : String) -> Bool{


let capitalLetterRegEx = ".*[A-Z]+.*"
var texttest = NSPredicate(format:"SELF MATCHES %@", capitalLetterRegEx)
var capitalresult = texttest!.evaluateWithObject(text)
println("\(capitalresult)")


let numberRegEx = ".*[0-9]+.*"
var texttest1 = NSPredicate(format:"SELF MATCHES %@", numberRegEx)
var numberresult = texttest1!.evaluateWithObject(text)
println("\(numberresult)")


let specialCharacterRegEx = ".*[!&^%$#@()/]+.*"
var texttest2 = NSPredicate(format:"SELF MATCHES %@", specialCharacterRegEx)

var specialresult = texttest2!.evaluateWithObject(text)
println("\(specialresult)")

return capitalresult || numberresult || specialresult

}

示例:

checkTextSufficientComplexity("Avatar") // true || false || false
checkTextSufficientComplexity("avatar") // false || false || false
checkTextSufficientComplexity("avatar1") // false || true || false
checkTextSufficientComplexity("avatar!") // false || false || true

关于ios - 在 Swift 中检查字符串是否至少包含大写字母、数字或特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29535792/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com