iOS-04-iOS調(diào)用js實(shí)現(xiàn)校驗(yàn)身份證、港澳通行證、護(hù)照、軍官證和臺(tái)胞證方法

前提

我們?cè)谄匠W?cè)的時(shí)候都會(huì)校驗(yàn)省份證,但是很少會(huì)遇到校驗(yàn)其他證件類型的,今天正好結(jié)合ios調(diào)用js方法實(shí)現(xiàn)這一操作

實(shí)現(xiàn)方法

創(chuàng)建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> // 驗(yàn)證身份證號(hào)碼有效性的方法 function issfz(value) { card_number = value.toLowerCase(); var aCity = {11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "內(nèi)蒙古", 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: "臺(tái)灣", 81: "香港", 82: "澳門", 91: "國(guó)外"}; 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) { //你的身份證地區(qū)非法 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) { //你輸入的身份證號(hào)非法 return false; } return true; //aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女") } } } } //護(hù)照驗(yàn)證 function isPassport(value) { var c = /\S{8,14}/; return c.test(value); } //軍官證驗(yàn)證 function isjunguanzheng(value) { var reg = /\S{8,10}/; value = value.replace(/(^\s*)|(\s*$)/g, ""); if (reg.test(value) === false) { return false; } else { return true; } } //驗(yàn)證港澳通行證 function isHkongMacao(value) { var a = /\S{9,12}/; return a.test(value); } //驗(yàn)證臺(tái)胞證 function isTaiw(value, element) { var d = /\d{8,11}/; return d.test(value); } </script> </body> </html>
這里我們不需要了解太多 只需要知道 我們通過調(diào)用isjunguanzheng()、isHkongMacao()isTaiw()、issfz()、isPassport()實(shí)現(xiàn)功能。

在原生ios項(xiàng)目中調(diào)用html文件中的js方法

將創(chuàng)建的html文件導(dǎo)入到我們的工程中,在我們需要使用js功能的地方創(chuàng)建webView并調(diào)用
#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

通過該方式并能實(shí)現(xiàn)我們想要的功能!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 不支持上傳文件,所以就復(fù)制過來(lái)了。作者信息什么的都沒刪。對(duì)前端基本屬于一竅不通,所以沒有任何修改,反正用著沒問題就...
    全棧在路上閱讀 2,055評(píng)論 0 2
  • 單例模式 適用場(chǎng)景:可能會(huì)在場(chǎng)景中使用到對(duì)象,但只有一個(gè)實(shí)例,加載時(shí)并不主動(dòng)創(chuàng)建,需要時(shí)才創(chuàng)建 最常見的單例模式,...
    Obeing閱讀 2,311評(píng)論 1 10
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,890評(píng)論 0 33
  • 愛情的守護(hù)神 無(wú)論男生還是女生,都一直被青春痘所困擾,對(duì)男生而言,是形象的貶值,是魅力的減分,對(duì)女生來(lái)說(shuō),是信心的...
    oo_c602閱讀 212評(píng)論 0 0
  • 捧一顆秋雨滴玩的是心跳 題記:2016年10月20日,應(yīng)外遷至武漢的“南水北調(diào)”中線工程移民之請(qǐng),帶他們到武漢HP...
    文心雕禪閱讀 263評(píng)論 10 3

友情鏈接更多精彩內(nèi)容