我正在使用Swift 2.0编写iPhone应用程序,我不希望人们能够在文本字段中输入脏字符。我正在尝试将此代码包装到函数中并返回一个bool以便稍后在应用程序中使用。到目前为止,代码完成了在操场中应该做的事情,而没有包含在函数中。但是,当我将它包装在一个函数中时,游乐场不喜欢代码。有没有更简单的方法来做我正在做的事情?
我是Swift 2.0的新手,已阅读编程指南,但我不确定如何在SDK / API中查找我需要的功能。我过去读过Apple的文档,但我还没有理解如何使用它。我似乎无法找到我正在寻找的信息。
必须有一种方法可以防止数百次传球。
我也想看看以后如何使用返回值。编程指南没有给出一个好的现实世界的例子。
这是我的第一语言。
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)
答案 0 :(得分:0)
使用NSCharacterSet
来保存“脏”字符:
let dirtyCharacters = NSCharacterSet(charactersInString: "~`!@#$%^&*()_+=-{}[]|;\'<>,./?1234567890")
然后你可以检测到没有这样的“脏”字符:
let isCleanText = randomText.rangeOfCharacterFromSet(dirtyCharacters) == nil
您可以过滤掉所有“脏”字符,如下所示:
let cleanedText = randomText.componentsSeparatedByCharactersInSet(dirtyCharacters)
.joinWithSeparator("")
NSString Class Reference充满了多汁的味道。