我只想看看是否有一个既定的方法来做这件事,或一个人将如何去做这件事。
我有一个文本字段,基本上是作为我的ios应用程序中的一个表单,用户可以在其中发布一些东西。我不能让用户发布脏话/不恰当的废话,所以我想过滤掉,如果他们输入的字符串包含这些词之一,就会显示一个错误。
swift中的其他应用程序如何做到这一点?他们只是搜索字符串看看它是否包含单词(显然不是在其他单词中,而是单独存在)还是有其他方法?
我怎样才能准确地过滤掉我在swift中的用户帖子中的脏话呢?

最佳答案

构造一个您认为是脏话的单词列表,只需检查用户输入的字符串中是否包含这些单词。
银行代码3:

import Foundation

func containsSwearWord(text: String, swearWords: [String]) -> Bool {
    return swearWords
        .reduce(false) { $0 || text.contains($1.lowercased()) }
}

// example usage
let listOfSwearWords = ["darn", "crap", "newb"]
    /* list as lower case */

let userEnteredText1 = "This darn didelo thread is a no no."
let userEnteredText2 = "This fine didelo thread is a go."

print(containsSwearWord(text: userEnteredText1, swearWords: listOfSwearWords)) // true
print(containsSwearWord(text: userEnteredText2, swearWords: listOfSwearWords)) // false

银行代码2.2:
import Foundation

func containsSwearWord(text: String, swearWords: [String]) -> Bool {
    return swearWords
        .reduce(false) { $0 || text.containsString($1.lowercaseString) }
}

// example usage
let listOfSwearWords = ["darn", "crap", "newb"]
/* list as lower case */

let userEnteredText1 = "This darn didelo thread is a no no."
let userEnteredText2 = "This fine didelo thread is a go."

print(containsSwearWord(userEnteredText1, swearWords: listOfSwearWords)) // true
print(containsSwearWord(userEnteredText2, swearWords: listOfSwearWords)) // false

07-28 04:37