iOS开发中的一些常用方法(一)
来源:互联网 发布:清华大学网络教学本科 编辑:程序博客网 时间:2024/06/06 16:38
1. 判断手机号码格式是否正确,利用正则表达式验证
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
+ (BOOL)isMobileNumber:(NSString *)mobileNum
{
if
(mobileNum.length != 11)
{
return
NO;
}
/**
* 手机号码:
* 13[0-9], 14[5,7], 15[0, 1, 2, 3, 5, 6, 7, 8, 9], 17[6, 7, 8], 18[0-9], 170[0-9]
* 移动号段: 134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705
* 联通号段: 130,131,132,155,156,185,186,145,176,1709
* 电信号段: 133,153,180,181,189,177,1700
*/
NSString *MOBILE = @
"^1(3[0-9]|4[57]|5[0-35-9]|8[0-9]|70)\d{8}$"
;
/**
* 中国移动:China Mobile
* 134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705
*/
NSString *CM = @
"(^1(3[4-9]|4[7]|5[0-27-9]|7[8]|8[2-478])\d{8}$)|(^1705\d{7}$)"
;
/**
* 中国联通:China Unicom
* 130,131,132,155,156,185,186,145,176,1709
*/
NSString *CU = @
"(^1(3[0-2]|4[5]|5[56]|7[6]|8[56])\d{8}$)|(^1709\d{7}$)"
;
/**
* 中国电信:China Telecom
* 133,153,180,181,189,177,1700
*/
NSString *CT = @
"(^1(33|53|77|8[019])\d{8}$)|(^1700\d{7}$)"
;
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;
}
}
2. 判断邮箱格式是否正确,利用正则表达式验证
1
2
3
4
5
6
+ (BOOL)isAvailableEmail:(NSString *)email
{
NSString *emailRegex = @
"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}"
;
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@
"SELF MATCHES %@"
, emailRegex];
return
[emailTest evaluateWithObject:email];
}
3. 判断字符串中是否含有空格
1
2
3
4
5
6
7
8
+ (BOOL)isHaveSpaceInString:(NSString *)string{
NSRange _range = [string rangeOfString:@
" "
];
if
(_range.location != NSNotFound) {
return
YES;
}
else
{
return
NO;
}
}
4. 判断字符串中是否含有中文
1
2
3
4
5
6
7
8
9
10
+ (BOOL)isHaveChineseInString:(NSString *)string
{
for
(NSInteger i = 0; i < [string length]; i++){
int a = [string characterAtIndex:i];
if
(a > 0x4e00 && a < 0x9fff) {
return
YES;
}
}
return
NO;
}
5. 判断字符串是否全部为数字
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
+ (BOOL)isAllNum:(NSString *)string
{
unichar c;
for
(int i=0; i<string.length; i++) { c=
"[string characterAtIndex:i];"
if
(!isdigit(c)) {=
""
return
no;=
""
}=
""
}=
""
return
yes;=
""
}<=
""
pre=
""
><p>判断是否是纯数字</p><pre class=
"brush:js;toolbar:false"
>+ (BOOL)isPureInteger:(NSString *)str {
NSScanner *scanner = [NSScanner scannerWithString:str];
NSInteger val;
return
[scanner scanInteger:&val] && [scanner isAtEnd];
}</pre><p><strong>6. 过滤一些特殊字符 似乎只能去除头尾的特殊字符(不准)</strong></p><pre class=
"brush:js;toolbar:false"
>+ (NSString *)filterSpecialWithString:(NSString *)string
{
// 定义一个特殊字符的集合
NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:
@
"@/:;: ;()?「」"、[]{}#%-*+=_|~<>$?^?'@#$%^&*()_+'"
];
// 过滤字符串的特殊字符
NSString *newString = [string stringByTrimmingCharactersInSet:set];
return
newString;
}</pre><p><strong>7. 让iOS应用直接退出</strong></p><pre class=
"brush:js;toolbar:false"
>+ (void)backOutApp {
UIWindow *window = [[UIApplication sharedApplication].delegate window];
[UIView animateWithDuration:1.0f animations:^{
window.alpha = 0;
} completion:^(BOOL finished) {
exit(0);
}];
}</pre><p><strong>8. NSArray 快速求总和、最大值、最小值、平均值</strong></p><pre class=
"brush:js;toolbar:false"
>+ (NSString *)caculateArray:(NSArray *)array
{
CGFloat sum = [[array valueForKeyPath:@
"@sum.floatValue"
] floatValue];
CGFloat avg = [[array valueForKeyPath:@
"@avg.floatValue"
] floatValue];
CGFloat max =[[array valueForKeyPath:@
"@max.floatValue"
] floatValue];
CGFloat min =[[array valueForKeyPath:@
"@min.floatValue"
] floatValue];
NSLog(@
"%fn%fn%fn%f"
,sum,avg,max,min);
return
[NSString stringWithFormat:@
"%f"
,sum];
}</pre><p>9. 验证身份证(本人试过,还挺准的)</p><pre class=
"brush:js;toolbar:false"
>+ (BOOL)checkIdentityCardNo:(NSString*)value {
value = [value stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSInteger length =0;
if
(!value) {
return
NO;
}
else
{
length = value.length;
if
(length !=15 && length !=18) {
return
NO;
}
}
// 省份代码
NSArray *areasArray =@[@
"11"
,@
"12"
, @
"13"
,@
"14"
, @
"15"
,@
"21"
, @
"22"
,@
"23"
, @
"31"
,@
"32"
, @
"33"
,@
"34"
, @
"35"
,@
"36"
, @
"37"
,@
"41"
, @
"42"
,@
"43"
, @
"44"
,@
"45"
, @
"46"
,@
"50"
, @
"51"
,@
"52"
, @
"53"
,@
"54"
, @
"61"
,@
"62"
, @
"63"
,@
"64"
, @
"65"
,@
"71"
, @
"81"
,@
"82"
, @
"91"
];
NSString *valueStart2 = [value substringToIndex:2];
BOOL areaFlag =NO;
for
(NSString *areaCode
in
areasArray) {
if
([areaCode isEqualToString:valueStart2]) {
areaFlag =YES;
break
;
}
}
if
(!areaFlag) {
return
false
;
}
NSRegularExpression *regularExpression;
NSUInteger numberofMatch;
NSInteger year =0;
switch
(length) {
case
15:
year = [[value substringWithRange:NSMakeRange(6,2)] integerValue] +1900;
if
(year %4 ==0 || (year 0 ==0 && year %4 ==0)) {
regularExpression = [[NSRegularExpression alloc]initWithPattern:@
"^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$"
options:NSRegularExpressionCaseInsensitive
error:nil];
//测试出生日期的合法性
}
else
{
regularExpression = [[NSRegularExpression alloc]initWithPattern:@
"^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$"
options:NSRegularExpressionCaseInsensitive
error:nil];
//测试出生日期的合法性
}
numberofMatch = [regularExpression numberOfMatchesInString:value options:NSMatchingReportProgress
range:NSMakeRange(0, value.length)];
if
(numberofMatch >0) {
return
YES;
}
else
{
return
NO;
}
case
18:
year = [value substringWithRange:NSMakeRange(6,4)].intValue;
if
(year %4 ==0 || (year 0 ==0 && year %4 ==0)) {
regularExpression = [[NSRegularExpression alloc]initWithPattern:@
"^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$"
options:NSRegularExpressionCaseInsensitive error:nil];
//测试出生日期的合法性
}
else
{
regularExpression = [[NSRegularExpression alloc]initWithPattern:@
"^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$"
options:NSRegularExpressionCaseInsensitive error:nil];
//测试出生日期的合法性
}
numberofMatch = [regularExpression numberOfMatchesInString:value options:NSMatchingReportProgress range:NSMakeRange(0, value.length)];
if
(numberofMatch >0) {
int S = ([value substringWithRange:NSMakeRange(0,1)].intValue + [value substringWithRange:NSMakeRange(10,1)].intValue) *7 + ([value substringWithRange:NSMakeRange(1,1)].intValue + [value substringWithRange:NSMakeRange(11,1)].intValue) *9 + ([value substringWithRange:NSMakeRange(2,1)].intValue + [value substringWithRange:NSMakeRange(12,1)].intValue) *10 + ([value substringWithRange:NSMakeRange(3,1)].intValue + [value substringWithRange:NSMakeRange(13,1)].intValue) *5 + ([value substringWithRange:NSMakeRange(4,1)].intValue + [value substringWithRange:NSMakeRange(14,1)].intValue) *8 + ([value substringWithRange:NSMakeRange(5,1)].intValue + [value substringWithRange:NSMakeRange(15,1)].intValue) *4 + ([value substringWithRange:NSMakeRange(6,1)].intValue + [value substringWithRange:NSMakeRange(16,1)].intValue) *2 + [value substringWithRange:NSMakeRange(7,1)].intValue *1 + [value substringWithRange:NSMakeRange(8,1)].intValue *6 + [value substringWithRange:NSMakeRange(9,1)].intValue *3;
int Y = S ;
NSString *M =@
"F"
;
NSString *JYM =@
"10X98765432"
;
M = [JYM substringWithRange:NSMakeRange(Y,1)];
// 判断校验位
if
([M isEqualToString:[value substringWithRange:NSMakeRange(17,1)]]) {
return
YES;
// 检测ID的校验位
}
else
{
return
NO;
}
}
else
{
return
NO;
}
default
:
return
false
;
}
}</pre><p><strong>10. 设置Label里的字符有不同的颜色</strong></p><pre class=
"brush:js;toolbar:false"
>
//可根据自己的需求进行增删改
- (void)stringColorSet {
NSString*string = @
"如何使得Label里的字符有不同的颜色?"
;
NSRange range = [string rangeOfString: @
"Label"
];
NSMutableAttributedString*attribute = [[NSMutableAttributedString alloc] initWithString: string];
[attribute addAttributes: @{NSForegroundColorAttributeName: [UIColor redColor]}range: range];
[attribute addAttributes: @{NSForegroundColorAttributeName: [UIColor greenColor]}range: NSMakeRange(0, range.location)];
[attribute addAttributes: @{NSForegroundColorAttributeName: [UIColor cyanColor]}range: NSMakeRange(range.location+ range.length, 5)];
UILabel *label = [[UILabel alloc] initWithFrame: CGRectMake(0.0f, 100.0f, 320.0f, 100.0f)];
[label setText: string];
[label setAttributedText: attribute];
}</pre><p><br></p>
</string.length; i++) {>
0 0
- iOS开发中的一些常用方法(一)
- iOS开发中的一些常用方法
- iOS开发中的一些常用方法
- iOS开发中的一些常用方法
- iOS开发中的一些常用方法
- iOS开发中的一些常用方法
- iOS开发中的一些常用方法(二)
- iOS开发中的一些常用小技巧
- iOS开发中的一些常用小技巧
- iOS开发中一些常用的方法
- iOS 开发 一些常用的公共方法
- iOS开发 GCD一些常用的方法
- Android开发中的一些常用方法
- IOS 开发中的一些实用公共方法
- VC中的一些常用用法(一)- -
- iOS 开发中一些常用到的代码/方法总结
- iOS常用的一些方法
- Android开发中的一些框架(一)
- 生成类似激活码的代码(C#)
- git学习笔记--标签
- 图解 Android 事件分发机制
- Java流程控制
- [codevs1294] 全排列
- iOS开发中的一些常用方法(一)
- Android studio 添加assets文件夹
- android应用版本更新策略
- 数据科学bloger
- Java 中的反射机制
- 动画
- Windows Embedded Standard 7先天免疫病毒程序
- Git常用命令
- 免费的Bootstrap管理后台模板集合