Regular expressions, also known as formal notation, conventional notation (English: Regular expression, often abbreviated in code as regex, RegExp, or re), is a concept of computer science. A regular expression uses a single string to describe and match a series of strings that conform to a certain syntactic rule.
You should have used regular expressions for the children's shoes developed by iOS. A regular expression is a good way to help us determine whether a string is legitimate. Like what:
In the App registration page, you need to determine whether the phone number is formatted correctly, whether it is enough 11 bits.
When you do feedback, you need to determine whether the mailbox format is correct.
Judging the phone number and judging the mailbox should be the most commonly used by iOS developers. How to judge, simple collation as follows:
Verify Mailbox
+ (BOOL)validateEmail:(NSString *)email{ NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex]; return [emailTest evaluateWithObject:email];}
Nspredicate is a foundation class that is used for querying, both in principle and in usage similar to where in SQL.
A simple way to verify your phone number
+ (BOOL)validatePhone:(NSString *)phone{ NSString *phoneRegex = @"1[3|5|7|8|][0-9]{9}"; NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex]; return [phoneTest evaluateWithObject:phone];}
This is simply to determine the phone number format. In fact, the format of the phone is still a bit complex.
Detailed method of judging
Regular Judge mobile phone number format + (BOOL) Validatephone: (NSString *) phone{/** * Mobile phone number * Move: 134[0-8],135,136,137,138,139,150, 151,157,158,159,182,187,188 * Unicom: 130,131,132,152,155,156,185,186 * Telecom: 133,1349,153,180,189 */N sstring * MOBILE = @ "^1 (3[0-9]|5[0-35-9]|8[025-9]) \\d{8}$"; /** 10 * Mobile: China Mobile 11 * 134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188 */NSString * CM = @ "^1 (34[0-8]| ( 3[5-9]|5[017-9]|8[278] \\d) \\d{7}$ "; /** 15 * Unicom: China Unicom * 130,131,132,152,155,156,185,186 * * N sstring * CU = @ "^1 (3[0-2]|5[256]|8[56]) \\d{8}$"; /** 20 * China Telecom: Chinese Telecom * 133,1349,153,180,189 * * * NSString * CT = @ "^1 ((33|53|8[09]) [0-9]|349) \\d{7}$"; /** 25 * Mainland China Landline and PHS 26 * Area code: 010,020,021,022,023,024,025,027,028,029 27 *Number: seven-bit or eight-bit * *//NSString * PHS = @ "^0 (10|2[0-5789]|\\d{3}) \\d{7,8}$"; Nspredicate *regextestmobile = [Nspredicate predicatewithformat:@ "Self MATCHES%@", MOBILE]; Nspredicate *REGEXTESTCM = [Nspredicate predicatewithformat:@ "Self MATCHES%@", CM]; Nspredicate *REGEXTESTCU = [Nspredicate predicatewithformat:@ "Self MATCHES%@", CU]; Nspredicate *REGEXTESTCT = [Nspredicate predicatewithformat:@ "Self MATCHES%@", CT]; if ([regextestmobile evaluatewithobject:phone] = = YES) | | ([regextestcm evaluatewithobject:phone] = = YES) | | ([regextestct evaluatewithobject:phone] = = YES) | | ([regextestcu evaluatewithobject:phone] = = YES)) {if ([regextestcm evaluatewithobject:phone] = = YES) {NSLog (@ "China Mobile"); } else if ([regextestct evaluatewithobject:phone] = = YES) {NSLog (@ "China Telecom"); } else if ([regextestcu evaluatewithobject:phone] = = YES) {NSLog (@ "China Unicom"); } else {NSLog (@ "Unknow"); } return YES; } else {return NO; }}
The above paragraph (from the network) is the mobile phone number to determine the detailed method. Basically this judgment is enough, if the three major operators, and then out of other segments of the mobile phone number. Direct son ah above do simple modification can.
Verifying mailboxes and phone numbers with regular expressions