gpt4 book ai didi

ios - 检查字符串是否包含 Swift 中的特殊字符

转载 作者:IT王子 更新时间:2023-10-29 05:08:41 25 4
gpt4 key购买 nike

我必须检测一个字符串是否包含任何特殊字符。我怎样才能检查它? Swift 是否支持正则表达式?

var characterSet:NSCharacterSet = NSCharacterSet(charactersInString: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
if (searchTerm!.rangeOfCharacterFromSet(characterSet).location == NSNotFound){
println("Could not handle special characters")
}

我试过上面的代码,但只有当我输入第一个字符作为特殊字符时它才匹配。

最佳答案

您的代码检查字符串中是否没有字符来自给定的集合。您想要的是检查给定集中是否任何字符:

if (searchTerm!.rangeOfCharacterFromSet(characterSet.invertedSet).location != NSNotFound){
println("Could not handle special characters")
}

您也可以使用正则表达式实现此目的:

let regex = NSRegularExpression(pattern: ".*[^A-Za-z0-9].*", options: nil, error: nil)!
if regex.firstMatchInString(searchTerm!, options: nil, range: NSMakeRange(0, searchTerm!.length)) != nil {
println("could not handle special characters")

}

模式 [^A-Za-z0-9] 匹配一个在 A-Z 范围内的字符,a-z,或 0-9。

Swift 2 更新:

let searchTerm = "a+b"

let characterset = NSCharacterSet(charactersInString: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
if searchTerm.rangeOfCharacterFromSet(characterset.invertedSet) != nil {
print("string contains special characters")
}

Swift 3 更新:

let characterset = CharacterSet(charactersIn: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
if searchTerm.rangeOfCharacter(from: characterset.inverted) != nil {
print("string contains special characters")
}

关于ios - 检查字符串是否包含 Swift 中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27703039/

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