33@implementation OAArabicNormalizer
44
55static NSRegularExpression *diacriticRegex;
6- static NSString *const arabicDigits = @" ٠١٢٣٤٥٦٧٨٩" ;
7- static NSString *const digitsReplacement = @" 0123456789" ;
8- static NSString *const kashida = @" \u0640 " ;
6+ static NSString *const kArabicDigits = @" ٠١٢٣٤٥٦٧٨٩" ;
7+ static NSString *const kDigitsReplacement = @" 0123456789" ;
8+ static NSString *const kKashida = @" \u0640 " ;
99
1010+ (void )initialize {
1111 NSError *error = nil ;
@@ -48,7 +48,7 @@ + (NSString *)normalize:(NSString *)text {
4848 withTemplate: @" " ] mutableCopy ];
4949
5050 // Remove Kashida
51- [result replaceOccurrencesOfString: kashida
51+ [result replaceOccurrencesOfString: kKashida
5252 withString: @" "
5353 options: 0
5454 range: NSMakeRange (0 , result.length)];
@@ -57,7 +57,7 @@ + (NSString *)normalize:(NSString *)text {
5757}
5858
5959+ (NSString *)replaceDigits : (NSString *)text {
60- if (text == nil ) {
60+ if (text == nil || text. length == 0 ) {
6161 return nil ;
6262 }
6363
@@ -67,9 +67,9 @@ + (NSString *)replaceDigits:(NSString *)text {
6767 }
6868
6969 NSMutableString *mutableText = [text mutableCopy ];
70- for (NSUInteger i = 0 ; i < arabicDigits .length ; i++) {
71- unichar arabicDigit = [arabicDigits characterAtIndex: i];
72- NSString *replacement = [NSString stringWithFormat: @" %c " , [digitsReplacement characterAtIndex: i]];
70+ for (NSUInteger i = 0 ; i < kArabicDigits .length ; i++) {
71+ unichar arabicDigit = [kArabicDigits characterAtIndex: i];
72+ NSString *replacement = [NSString stringWithFormat: @" %c " , [kDigitsReplacement characterAtIndex: i]];
7373 NSString *arabicDigitStr = [NSString stringWithFormat: @" %C " , arabicDigit];
7474
7575 [mutableText replaceOccurrencesOfString: arabicDigitStr
@@ -97,4 +97,4 @@ + (BOOL)isArabicCharacter:(unichar)c {
9797 return (c >= 0x0600 && c <= 0x06FF );
9898}
9999
100- @end
100+ @end
0 commit comments