| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #import "BTUIKCardExpiryFormat.h"
- #import "BTUIKUtil.h"
- @implementation BTUIKCardExpiryFormat
- - (void)formattedValue:(NSString *__autoreleasing *)value cursorLocation:(NSUInteger *)cursorLocation {
- if (value == NULL || cursorLocation == NULL) {
- return;
- }
- NSMutableString *s = [NSMutableString stringWithString:self.value];
- *cursorLocation = self.cursorLocation;
- if (s.length == 0) {
- *value = s;
- return;
- }
- if (*cursorLocation == 1 && s.length == 1 && [s characterAtIndex:0] > '1' && [s characterAtIndex:0] <= '9') {
- [s insertString:@"0" atIndex:0];
- *cursorLocation += 1;
- }
- if (self.backspace) {
- if (*cursorLocation == 2 && s.length == 2) {
- [s deleteCharactersInRange:NSMakeRange(1, 1)];
- *cursorLocation -= 1;
- }
- } else {
- NSUInteger slashLocation = [s rangeOfString:@"/"].location;
- if (slashLocation != NSNotFound) {
- if (slashLocation > 2) {
- s = [NSMutableString stringWithString:[BTUIKUtil stripNonDigits:s]];
- [s insertString:@"/" atIndex:2];
- *cursorLocation += 1;
- }
- } else {
- if (s.length >= 2) {
- [s insertString:@"/" atIndex:2];
- if (*cursorLocation >= 2) {
- *cursorLocation += 1;
- }
- }
- }
- }
- *value = s;
- }
- @end
|