判断是不是中文,判断手机号码,计算字符串长度
来源:互联网 发布:网上买门用什么软件 编辑:程序博客网 时间:2024/06/07 15:47
// 正则判断手机号码地址格式- (BOOL)isMobileNumber:(NSString *)mobileNum{ /** * 手机号码 * 移动:134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188 * 联通:130,131,132,152,155,156,185,186 * 电信:133,1349,153,180,189 */ NSString * MOBILE = @"^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$"; /** 10 * 中国移动:China Mobile 11 * 134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188 12 */ NSString * CM = @"^1(34[0-8]|(3[5-9]|5[017-9]|8[278])\\d)\\d{7}$"; /** 15 * 中国联通:China Unicom 16 * 130,131,132,152,155,156,185,186 17 */ NSString * CU = @"^1(3[0-2]|5[256]|8[56])\\d{8}$"; /** 20 * 中国电信:China Telecom 21 * 133,1349,153,180,189 22 */ NSString * CT = @"^1((33|53|8[09])[0-9]|349)\\d{7}$"; /** 25 * 大陆地区固话及小灵通 26 * 区号:010,020,021,022,023,024,025,027,028,029 27 * 号码:七位或八位 28 */ // 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:mobileNum] == YES) || ([regextestcm evaluateWithObject:mobileNum] == YES) || ([regextestct evaluateWithObject:mobileNum] == YES) || ([regextestcu evaluateWithObject:mobileNum] == YES)) { return YES; } else { return NO; }}
主要是将oc字符串转成c的字符串(char*),然后判断c的字符串的长度,因为中文字符占得长度是英文字符的两倍。//判断一个字符书不是中文。-(BOOL)isChinese:(NSString*)c{ int strlength = 0; char* p = (char*)[ccStringUsingEncoding:NSUnicodeStringEncoding]; for (int i=0 ; i<[c lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) { if (*p) { p++; strlength++; } else { p++; } } return ((strlength/2)==1)?YES:NO;}检验: NSString* str = @"我"; NSLog(@"%d",[selfisChinese:str]); NSString* str2 = @"w"; NSLog(@"%d",[selfisChinese:str2]);//计算一段字符串的长度,两个英文字符占一个长度。- (int)countTheStrLength:(NSString*)strtemp { int strlength = 0; char* p = (char*)[strtempcStringUsingEncoding:NSUnicodeStringEncoding]; for (int i=0 ; i<[strtemp lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) { if (*p) { p++; strlength++; } else { p++; } } return (strlength+1)/2;}
for(int i=0; i< [c length];i++){ int a = [c characterAtIndex:i]; if( a > 0x4e00 && a < 0x9fff) return YES; } return NO;
0 0
- 判断是不是中文,判断手机号码,计算字符串长度
- Objective-C ,ios,iphone开发基础:如何判断一个字符是不是中文字符。计算一段字符串的长度。
- java 判断中文字符串长度
- java 判断中文字符串长度
- java 判断中文字符串长度
- java判断中文字符串长度
- Java 判断中文字符串长度
- 如何判断手机号码是不是正确
- 判断是不是中文
- 判断字符串是不是数字
- 判断字符串是不是GB2312?
- 判断字符串是不是回文
- 判断字符串是不是数字
- 判断字符串是不是数字
- 判断字符串是不是回文
- 用js判断中文字符串的长度
- 如何判断含有中文的字符串长度
- android 判断输入的是不是手机号码
- poj 1915 Knight Moves
- LeetCode: Find Minimum in Rotated Sorted Array
- 第九周项目一—利用循环求和
- 第九周项目1-(1) 求1000以内所有偶数的和
- 读书笔记-互联网思维必读10本书之一《免费》
- 判断是不是中文,判断手机号码,计算字符串长度
- 第九周项目一利用循环求和
- CWND子窗口重绘
- 第九周上机项目一利用循环求和
- [转载]linux下svn常用指令
- 第9周项目1利用循环求和
- 语音编码研究
- MySQL触发器 trigger之after与before区分
- Null value was assigned to a property of primitive