iOS - 验证输入的是否是正确的身份证号码和手机号码

- (BOOL)checkIdentityCardNo:(NSString*)cardNo

{

if (cardNo.length != 18) {

return  NO;

}

NSArray* codeArray = [NSArray arrayWithObjects:@"7",@"9",@"10",@"5",@"8",@"4",@"2",@"1",@"6",@"3",@"7",@"9",@"10",@"5",@"8",@"4",@"2", nil];

NSDictionary* checkCodeDic = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"1",@"0",@"X",@"9",@"8",@"7",@"6",@"5",@"4",@"3",@"2", nil]  forKeys:[NSArray arrayWithObjects:@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10", nil]];

NSScanner* scan = [NSScanner scannerWithString:[cardNo substringToIndex:17]];

int val;

BOOL isNum = [scan scanInt:&val] && [scan isAtEnd];

if (!isNum) {

return NO;

}

int sumValue = 0;

for (int i =0; i<17; i++) {

sumValue+=[[cardNo substringWithRange:NSMakeRange(i , 1) ] intValue]* [[codeArray objectAtIndex:i] intValue];

}

NSString* strlast = [checkCodeDic objectForKey:[NSString stringWithFormat:@"%d",sumValue%11]];

if ([strlast isEqualToString: [[cardNo substringWithRange:NSMakeRange(17, 1)]uppercaseString]]) {

return YES;

}

return  NO;

}

- (BOOL)isMobileNumber:(NSString *)mobileNumString

{

NSString *pattern = @"^1+[3578]+\\d{9}";

NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];

BOOL isMatch = [pred evaluateWithObject:mobileNumString];

return isMatch;

}

时间: 2024-08-24 08:26:52

iOS - 验证输入的是否是正确的身份证号码和手机号码的相关文章

jquery验证身份证号码、手机号码

// 验证身份证 function IsUserCard(idNo) { if (idNo.length != 0) { if (!checkCard(idNo)) { // $("#errorTips").html("身份证号码格式错误"); return false; } else { return true; } } return true;} checkCard = function (obj) { //校验长度,类型 if (isCardNo(obj) =

正则表达式验证输入用户名格式是否正确(二)

一 问题描述 3个EditBox,每个允许输入1到6个英文字符或数字,按OK输入结束 (通过输入字符串,返回正误信息) 二 有效等价类和无效等价类划分: 有效等价类 无效等价类  length=[1-6]  length=0 or length>6  char=[a-zA-Z0-9]  other chars  CorrectNum=3  CorrectNum<3 三 测试用例 编号 输入 预期输出 1 String 1 = "123" String 2 = "t

按GB 11643标准对大陆身份证号码分析验证

按照GB 11643标准进行身份证验证,然后GB/T 2260采用的是2013标准,因为实在无法找到GB/T 2260-84标准,所以实际会出现正确的身份证也无法识别的情况,这时候可以通过设置要验证的AreaLevel来降低验证级别,如果能找全所有GB/T 2260标准的话,代码也就能加入按生日判断该采用哪个标准的功能,下面是具体代码 相关枚举 /// <summary> /// 身份证号码长度 /// </summary> public enum CardLength { All

C#后台验证身份证号码的一个方法

简单的调用了正则表达式进行简单的验证,记下来留着以后备用 1 if ((!Regex.IsMatch(txtID.Text, @"^(^\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$",RegexOptions.IgnoreCase))) 2 { 3 MessageBox.Show("请输入正确的身份证号码!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); 4 r

[oldboy-django][2深入django]Form组件功能: 数据格式验证 + 保留上次输入的值(如果有很多输入项,这样正确项不必重复输入,错误项也能提示错误信息)

1 需求:登录或者注册页面存在以下问题 - 无法记住上次提交的内容,(如果有很多输入项,这样正确项不必重复输入,错误项也能提示错误信息)- 重复进行提交数据的校验(数据是否为空,长度大小等等) 2 django的Form组件实现 2.1 Form组件实现数据验证方法 2.1.1 流程操作 - 定义规则(数据的格式,字段必须和表单上name属性一致) class LoginForm(Form): 字段名 = fields.xxFields(参数) # 定义了一个输入框的数据格式要求 实例化对象ob

iOS判断用户输入的银行卡号是否正确

为了打造更好的用户体验,同时减轻服务器端的压力,对于一些如,手机号码,银行卡号,身份证号码判断是否正确是很有必要的 下面是一小段判断银行卡号输入是否正确的代码方法供大家参考 - (void)viewDidLoad { [super viewDidLoad]; NSString *str = @"6226820011200783033"; BOOL isRight = [self checkCardNo:str]; if (!isRight) { UIAlertView *alert =

easyui中combobox 验证输入的值必须为选项框中的数据

当作为提示框的方式时,combobox必须设置为允许用户输入的模式,但是当用户输入后未选择正确的数据就直接按tab或点击鼠标离开控件会导致用户输入无效的值并且通过验证,为了避免这种情况的发生我们需要对输入的值进行确认,输入不正确就清空用户的输入框以达到提示的效果 上代码: [javascript] view plain copy print? onHidePanel : function() { var _options = $(this).combobox('options'); var _d

textbox填入后验证输入的合法或根据输入的内容失去焦点后立即得出其他信息

<x:SimpleForm ID="SimpleForm1" runat="server" EnableBackgroundColor="true" ShowBorder="False" BodyPadding="2px" ShowHeader="False"> <Items> <x:Panel ID="Panel3" ShowHeade

远程桌面解决您输入的凭证不正确

远程桌面解决您输入的凭证不正确 环境: 家中win7笔记本vpn连接上公司的网络,回到公司后想从自己的笔记本上提取文件,前提笔记本已开启远程桌面 问题:远程桌面提示您输入的凭证不正确(已确认账号密码正确) 解决: 本机操作: 1.  "Win+R"→"gpedit.msc" 2.依次展开"计算机配置"→"管理模版"→"系统"→"凭据分配"→找到"允许分配保存的凭据用于仅NTLM