iOS-04-iOS调用js实现校验身份证、港澳通行证、护照、军官证和台胞证方法

前提

我们在平常注册的时候都会校验省份证,但是很少会遇到校验其他证件类型的,今天正好结合ios调用js方法实现这一操作

实现方法

创建html文件

<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> </head> <body> <input type="button" value="btn" id="btn" onclick="isjunguanzheng()" /> <input type="button" value="btn" id="btn" onclick="isHkongMacao()" /> <input type="button" value="btn" id="btn" onclick="isTaiw()" /> <input type="button" value="btn" id="btn" onclick="issfz()" /> <input type="button" value="btn" id="btn" onclick="isPassport()" /> <script> // 验证身份证号码有效性的方法 function issfz(value) { card_number = value.toLowerCase(); var aCity = {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: "国外"}; if (!/^\d{17}(\d|x)$/i.test(card_number)) { //身份证不能为空 return false; } else { card_number = card_number.replace(/x$/i, "a"); if (aCity[parseInt(card_number.substr(0, 2))] == null) { //你的身份证地区非法 return false; } else { var sBirthday = card_number.substr(6, 4) + "-" + Number(card_number.substr(10, 2)) + "-" + Number(card_number.substr(12, 2)); var d = new Date(sBirthday.replace(/-/g, "/")); if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate())) { //身份证上的出生日期非法 return false; } else { var iSum = 0; for (var i = 17; i >= 0; i--) { iSum += (Math.pow(2, i) % 11) * parseInt(card_number.charAt(17 - i), 11); } if (iSum % 11 != 1) { //你输入的身份证号非法 return false; } return true; //aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女") } } } } //护照验证 function isPassport(value) { var c = /\S{8,14}/; return c.test(value); } //军官证验证 function isjunguanzheng(value) { var reg = /\S{8,10}/; value = value.replace(/(^\s*)|(\s*$)/g, ""); if (reg.test(value) === false) { return false; } else { return true; } } //验证港澳通行证 function isHkongMacao(value) { var a = /\S{9,12}/; return a.test(value); } //验证台胞证 function isTaiw(value, element) { var d = /\d{8,11}/; return d.test(value); } </script> </body> </html>
这里我们不需要了解太多 只需要知道 我们通过调用isjunguanzheng()isHkongMacao()isTaiw()issfz()isPassport()实现功能。

在原生ios项目中调用html文件中的js方法

将创建的html文件导入到我们的工程中,在我们需要使用js功能的地方创建webView并调用
#import "ViewController.h" @interface ViewController () <UIWebViewDelegate> @property (nonatomic, strong) UIWebView* webview; @end @implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; self.webview = [[UIWebView alloc] init]; self.webview.backgroundColor = [UIColor clearColor]; self.webview.delegate = self; NSString* basePath = [[NSBundle mainBundle] bundlePath]; NSString* helpHtmlPath = [basePath stringByAppendingPathComponent:@"ver.html"]; NSURL* url = [NSURL fileURLWithPath:helpHtmlPath]; //加载本地html文件 [self.webview loadRequest:[NSURLRequest requestWithURL:url]]; [self.view addSubview:self.webview]; }- (void)touchesBegan:(NSSet<UITouch*>*)touches withEvent:(UIEvent*)event { NSString* str = [self.webview stringByEvaluatingJavaScriptFromString:@"issfz('130621199208225275');"]; NSLog(@"JS返回值:%@", str); } @end

通过该方式并能实现我们想要的功能!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 不支持上传文件,所以就复制过来了。作者信息什么的都没删。对前端基本属于一窍不通,所以没有任何修改,反正用着没问题就...
    全栈在路上阅读 1,998评论 0 2
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,103评论 1 10
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,771评论 0 33
  • 爱情的守护神 无论男生还是女生,都一直被青春痘所困扰,对男生而言,是形象的贬值,是魅力的减分,对女生来说,是信心的...
    oo_c602阅读 196评论 0 0
  • 捧一颗秋雨滴玩的是心跳 题记:2016年10月20日,应外迁至武汉的“南水北调”中线工程移民之请,带他们到武汉HP...
    文心雕禅阅读 230评论 10 3