1

我正在创建一个包含用户评论区的网站。例如留言簿或产品评论。我想限制用户在评论区发布不恰当的语言。例如:粗俗。

如果用户输入任何粗俗的内容,字符将被替换为 * 。*示例 - 从愚蠢到 s * * * * **。

我一直在研究相关网站,但没有结果。对此的建议或教程将不胜感激。

4

1 回答 1

-1

没有办法完全阻止“坏语言”的使用,但您可以尝试通过创建一个每行都包含一个坏词的文本文件来阻止它。然后将文件中的单词列表加载到List<String>程序中的 a 中。您可以通过执行以下操作来做到这一点:

// The list of swear words
List<string> swearWords = new List<string>();

private void GetSwearWords()
{
    // Get the path to the file that has the swear words list
    string path = <File Path>;

    // Open the text file
    TextReader reader = new StreamReader(path);

    // Loop through each line in the file.
    string line = "";
    while ((line = reader.ReadLine()) != null)
    {
       // Lower cases word and removes whitespaces
       string word = line.Trim().ToLower();

       // Adds the word to the list
       swearWords.Add(word);
    }
}

然后,要确定字符串是否包含这些坏词之一,请执行以下操作:

private bool HasSwearWord(string text)
{
    // Splits words, removes whitespace and any punctuation
    string[] wordArray = Regex.Split(text, @"\W+");

    // Check if any word in the string is a swear word
    foreach (string word in wordArray)
    {
        if (swearWords.Contains(word.ToLower()))
        {
            return true;
        }
    }
    return false;
}
于 2012-07-14T19:17:51.673 回答