首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
移动开发
> 详细
判断输入的手机号和价格是否合法
时间:
2015-06-26 19:21:34
阅读:
242
评论:
0
收藏:
0
[点我收藏+]
标签:
///// 手机号码的有效性判断
//检测是否是手机号码
- (
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;
}
}
//////// 特殊字符的限制输入,价格金额的有效性判断
#define myDotNumbers @"0123456789.\n"
#define myNumbers @"0123456789\n"
-(
void) createTextFiled {
textfield
1_ = [[UITextField
alloc]
initWithFrame:CGRectMake(
0,
0,
2
0,
2
0)];
textfield
1_
.delegate =
self;
[
self
addSubview:textfield
1_];
textfield
2_ = [[UITextField
alloc]
initWithFrame:CGRectMake(
0,
0,
2
0,
2
0)];
textfield
2_
.delegate =
self;
[
self
addSubview:textfield
2_];
textfield
3_ = [[UITextField
alloc]
initWithFrame:CGRectMake(
0,
0,
2
0,
2
0)];
textfield
3_
.delegate =
self;
[
self
addSubview:textfield
3_];
}
-(
void)showMyMessage:(NSString*)aInfo {
UIAlertView *alertView = [[UIAlertView
alloc]
initWithTitle:
@"提示"
message:aInfo
delegate:
self
cancelButtonTitle:
@"确定"
otherButtonTitles
:nil,
nil
nil];
[alertView
show];
[alertView
release];
}
- (
BOOL)textField:(
UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(
NSString *)string {
NSCharacterSet *cs;
if ([textField
isEqual:textfield
1_]) {
cs = [[NSCharacterSet
characterSetWithCharactersInString:myNumbers]
invertedSet];
NSString *filtered = [[string
componentsSeparatedByCharactersInSet:cs]
componentsJoinedByString:
@""];
BOOL basicTest = [string
isEqualToString:filtered];
if (!basicTest) {
[
self
showMyMessage:
@"只能输入数字"];
return
NO;
}
}
else
if ([textField
isEqual:textfield
2_]) {
cs = [[NSCharacterSet
characterSetWithCharactersInString:myNumbers]
invertedSet];
NSString *filtered = [[string
componentsSeparatedByCharactersInSet:cs]
componentsJoinedByString:
@""];
BOOL basicTest = [string
isEqualToString:filtered];
if (!basicTest) {
[
self
showMyMessage:
@"只能输入数字"];
return
NO;
}
}
else
if ([textField
isEqual:textfield
3_]) {
NSUInteger nDotLoc = [textField
.text
rangeOfString:
@"."]
.location;
if (NSNotFound == nDotLoc &&
0 != range
.location) {
cs = [[NSCharacterSet
characterSetWithCharactersInString:myDotNumbers]
invertedSet];
}
else {
cs = [[NSCharacterSet
characterSetWithCharactersInString:myNumbers]
invertedSet];
}
NSString *filtered = [[string
componentsSeparatedByCharactersInSet:cs]
componentsJoinedByString:
@""];
BOOL basicTest = [string
isEqualToString:filtered];
if (!basicTest) {
[
self
showMyMessage:
@"只能输入数字和小数点"];
return
NO;
}
if (NSNotFound != nDotLoc && range
.location > nDotLoc +
3) {
[
self
showMyMessage:
@"小数点后最多三位"];
return
NO;
}
}
return
YES;
判断输入的手机号和价格是否合法
标签:
原文地址:http://www.cnblogs.com/zyj442714794/p/4602874.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
关闭苹果IOS app自动更新
2021-07-29
开发一个即时通讯App
2021-07-28
iOS 跳转App Store进行评分
2021-07-26
诺基亚短信生成!太好玩了
2021-07-26
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
2021-07-26
Android系统编程入门系列之界面Activity响应丝滑的传统动画
2021-07-26
uniapp h5,app两端复制文本
2021-07-22
uni-app滚动视图容器(scroll-view)之监听上拉事件
2021-07-21
新型横向移动工具原理分析、代码分析、优缺点以及检测方案
2021-07-19
Android系统编程入门系列之界面Activity交互响应
2021-07-19
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!