The whitelist should be checking the input text instead of an item from the blacklist for the following reasons:
There is no point to have the same word both in blacklist and whitelist. If the word shouldn't be considered as profane, simply remove it from the blacklist.
By checking the input text in the whitelist will make Regex working better in the blacklist, e.g. "suckdicks" should be profane, but "DickSmith"(An Australian brand) should not be. So if we have "\wdicks\w" in the blacklist and "DickSmith" in the whitelist, we can easily by pass the check for "DickSmith" without miss checking any profane words contain "dicks".
The whitelist should be checking the input text instead of an item from the blacklist for the following reasons: