Я разрабатываю приложение для чата iOS, здесь у меня есть сценарий, в котором я должен идентифицировать введенный пользователем текст, содержит любые слова Abusing на моем действии кнопки отправки. У меня есть большой список слов злоупотребления для идентификации.Как определить оскорбительные слова в UITextField?
Я использовал приведенный ниже код, чтобы идентифицировать злоупотребляющие слова, но iam сталкивается с проблемой здесь например. мой список злоупотребляющих слов Массив содержит «Ад». если я введу «Hello» в текстовое поле, это будет показано как злоупотребляющее слово, потому что Hello содержит Hell.
Вот мой код
NSArray *arrayOfStrings = [[rateQuery findObjects] mutableCopy];
arrayOfStrings=[arrayOfStrings valueForKey:@"Words"];//List of Abusing words
NSString *stringToSearchWithin = nameFld.text;//user entered text
__block NSString *result = nil;
[arrayOfStrings indexOfObjectWithOptions:NSEnumerationConcurrent
passingTest:^(NSString *obj, NSUInteger idx, BOOL *stop)
{
if ([stringToSearchWithin rangeOfString:obj].location != NSNotFound)
{
result = obj;
*stop = YES;
//return YES;
}
return NO;
}];
if (!result){
NSLog(@"The string does not contain any of the strings from the arrayOfStrings");
}
else
{
NSLog(@"The string contains Abusing words");
}
Я предлагаю вам использовать 'NSRegularExpression'. – Larme
Вы должны проверить, есть ли пробел, вопросительный знак и т. Д. Перед или/и за этим словом. Если что-то впереди и что-то позади, оно должно работать. Regex было бы неплохо, как упоминалось в Larme. – Maik639
взгляните на это https://github.com/IslandOfDoom/IODProfanityFilter – rob180