有没有更好的方法来大小写匹配脏字符?
Is there a better way to case match dirty characters?
我正在用 Swift 2.0 编写一个 iPhone 应用程序,我不希望人们能够在文本字段中输入脏字符。我正在尝试将此代码包装到一个函数中,并 return 一个 bool 以供稍后在应用程序中使用。到目前为止,代码在 playground 中完成了它应该做的事情,而没有被包装在一个函数中。但是,当我将它包装在一个函数中时,游乐场不喜欢该代码。有没有更简单的方法来完成我正在做的事情?
我是 Swift 2.0 的新手,已阅读编程指南,但不确定如何在 SDK/API 中找到我需要的函数。我以前读过苹果的文档,但我一直不明白如何使用它。我似乎永远无法在其中找到我正在寻找的信息。
必须有一种方法来避免进行数百次传球。
我也想看看以后如何使用 return 值。编程指南没有给出很好的真实示例。
这是我的第一语言。
var randomText: String = "D*rtyCh4ract3rs!#"
var isCleanText:Bool = true
let dirtyCharacters: String = "~`!@#$%^&*()_+=-{}[]|;\'<>,./?1234567890"
var dirtyStringArray = [String]()
var boolCountArray = [Bool]()
for singleCharacter in dirtyCharacters.characters {
dirtyStringArray.append("\(singleCharacter)")
for testCase in dirtyStringArray {
if (randomText as NSString).containsString(testCase).boolValue {
boolCountArray.append((randomText as NSString).containsString(testCase).boolValue)
if boolCountArray.count > 0 {
isCleanText = false
print(boolCountArray)
break
} else {
isCleanText = true
}
}
}
}
打印(isCleanText)
使用 NSCharacterSet
来容纳你的“肮脏”角色:
let dirtyCharacters = NSCharacterSet(charactersInString: "~`!@#$%^&*()_+=-{}[]|;\'<>,./?1234567890")
然后您可以像这样检测不存在任何“脏”字符:
let isCleanText = randomText.rangeOfCharacterFromSet(dirtyCharacters) == nil
您可以像这样过滤掉所有“脏”字符:
let cleanedText = randomText.componentsSeparatedByCharactersInSet(dirtyCharacters)
.joinWithSeparator("")
NSString Class Reference 塞满了多汁的小点心。
我正在用 Swift 2.0 编写一个 iPhone 应用程序,我不希望人们能够在文本字段中输入脏字符。我正在尝试将此代码包装到一个函数中,并 return 一个 bool 以供稍后在应用程序中使用。到目前为止,代码在 playground 中完成了它应该做的事情,而没有被包装在一个函数中。但是,当我将它包装在一个函数中时,游乐场不喜欢该代码。有没有更简单的方法来完成我正在做的事情?
我是 Swift 2.0 的新手,已阅读编程指南,但不确定如何在 SDK/API 中找到我需要的函数。我以前读过苹果的文档,但我一直不明白如何使用它。我似乎永远无法在其中找到我正在寻找的信息。
必须有一种方法来避免进行数百次传球。
我也想看看以后如何使用 return 值。编程指南没有给出很好的真实示例。
这是我的第一语言。
var randomText: String = "D*rtyCh4ract3rs!#"
var isCleanText:Bool = true
let dirtyCharacters: String = "~`!@#$%^&*()_+=-{}[]|;\'<>,./?1234567890"
var dirtyStringArray = [String]()
var boolCountArray = [Bool]()
for singleCharacter in dirtyCharacters.characters {
dirtyStringArray.append("\(singleCharacter)")
for testCase in dirtyStringArray {
if (randomText as NSString).containsString(testCase).boolValue {
boolCountArray.append((randomText as NSString).containsString(testCase).boolValue)
if boolCountArray.count > 0 {
isCleanText = false
print(boolCountArray)
break
} else {
isCleanText = true
}
}
}
}
打印(isCleanText)
使用 NSCharacterSet
来容纳你的“肮脏”角色:
let dirtyCharacters = NSCharacterSet(charactersInString: "~`!@#$%^&*()_+=-{}[]|;\'<>,./?1234567890")
然后您可以像这样检测不存在任何“脏”字符:
let isCleanText = randomText.rangeOfCharacterFromSet(dirtyCharacters) == nil
您可以像这样过滤掉所有“脏”字符:
let cleanedText = randomText.componentsSeparatedByCharactersInSet(dirtyCharacters)
.joinWithSeparator("")
NSString Class Reference 塞满了多汁的小点心。