による検索を作成しようとしていますHashtag
。ユーザーは単語を入力できます。
今、私は検証する必要があります:
ユーザーは単語ごとに 1 つのハッシュタグしか持っていません
単語ごとに 1 つのハッシュタグしかありません。
単語がハッシュタグで始まらない場合は、ハッシュタグを配置します。
ユーザーは複数のスペースを入力していません 余分なスペースを削除してください
ユーザーは、coma や semi-coma などの単語を区切るために、他の一般的な区切り記号を使用しませんでした
次のコードを作成しましたが、新しい単語を開始するたびに、2 つの単語の間のスペースが削除され、2 つの単語を使用できなくなるか、2 番目の単語を使用できるようになりますが#
、二番目の言葉。
誰かが私の検証のロジックを手伝ってくれませんか?
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
// Delete double spaces between words
NSString* str = [textField.text stringByReplacingOccurrencesOfString:@" " withString:@" "];
if ( [str isEqualToString:@""] ) {
return YES;
}
// Check for other methods that people could use to separate strings
str = [str stringByReplacingOccurrencesOfString:@"," withString:@"#"];
str = [str stringByReplacingOccurrencesOfString:@";" withString:@"#"];
// separate string by Hashtag
NSArray * words = [str componentsSeparatedByString:@"#"];
NSMutableArray * ma =[[NSMutableArray alloc]init];
for (NSString* str4 in words) {
if ( ![str4 isEqualToString:@""]) {
// Separate string by space
NSArray * words2 = [str4 componentsSeparatedByString:@" "];
if ( [words2 count] != 0) {
[ma addObjectsFromArray:words2];
}
}
}
words = [[NSArray alloc]initWithArray:ma];
NSString * newStr = [[NSString alloc]init];
// Make the new string
for (NSString* str2 in words) {
if ( ![str2 isEqualToString:@""]) {
NSString* str3 = str2;
str3 = [NSString stringWithFormat:@"#%@ ",str3];
newStr = [newStr stringByAppendingString:str3];
}
}
textField.text = newStr;
return YES;
}