判斷使用者輸入的銀行卡號是否正確的方法_正規表示式
下面小編就為大家帶來一篇判斷使用者輸入的銀行卡號是否正確的方法(基於Luhn演算法的格式校驗)。小編覺得蠻不錯的,現在就分享給大家,也給大家做個參考。一起跟著小編過來看看吧
開發中,有時候,為了打造更好的用戶體驗,同時減輕伺服器端的壓力,需要對於一些如,手機號碼,銀行卡號,身份證號碼進行格式校驗
以下是判斷銀行卡號輸入是否正確的程式碼(基於Luhn演算法的格式校驗):
##iOS程式碼: ##/**
* 银行卡格式校验
*
* @param cardNo 银行卡号
*
* @return
*/
+ (BOOL) checkCardNo:(NSString*) cardNo{
int oddsum = 0; //奇数求和
int evensum = 0; //偶数求和
int allsum = 0;
int cardNoLength = (int)[cardNo length];
int lastNum = [[cardNo substringFromIndex:cardNoLength-1] intValue];
cardNo = [cardNo substringToIndex:cardNoLength - 1];
for (int i = cardNoLength -1 ; i>=1;i--) {
NSString *tmpString = [cardNo substringWithRange:NSMakeRange(i-1, 1)];
int tmpVal = [tmpString intValue];
if (cardNoLength % 2 ==1 ) {
if((i % 2) == 0){
tmpVal *= 2;
if(tmpVal>=10)
tmpVal -= 9;
evensum += tmpVal;
}else{
oddsum += tmpVal;
}
}else{
if((i % 2) == 1){
tmpVal *= 2;
if(tmpVal>=10)
tmpVal -= 9;
evensum += tmpVal;
}else{
oddsum += tmpVal;
}
}
}
allsum = oddsum + evensum;
allsum += lastNum;
if((allsum % 10) == 0)
return YES;
else
return NO;
}
Androd程式碼:/**
* 匹配Luhn算法:可用于检测银行卡卡号
* @param cardNo
* @return
*/
public static boolean matchLuhn(String cardNo) {
int[] cardNoArr = new int[cardNo.length()];
for (int i=0; i<cardNo.length(); i++) {
cardNoArr[i] = Integer.valueOf(String.valueOf(cardNo.charAt(i)));
}
for(int i=cardNoArr.length-2;i>=0;i-=2) {
cardNoArr[i] <<= 1;
cardNoArr[i] = cardNoArr[i]/10 + cardNoArr[i]%10;
}
int sum = 0;
for(int i=0;i<cardNoArr.length;i++) {
sum += cardNoArr[i];
}
return sum % 10 == 0;
}
##在輸入銀行卡號過程中,通常,我們會每隔4位插入一個"-",類似"1332-2131-2313-1231-212"這種的格式可以透過以下方法實現:
設定textField的代理程式
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *text = [textField text];
NSCharacterSet *characterSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789\b"];
string = [string stringByReplacingOccurrencesOfString:@"-" withString:@""];
if ([string rangeOfCharacterFromSet:[characterSet invertedSet]].location != NSNotFound) {
return NO;
}
text = [text stringByReplacingCharactersInRange:range withString:string];
text = [text stringByReplacingOccurrencesOfString:@"-" withString:@""];
NSString *newString = @"";
while (text.length > 0) {
NSString *subString = [text substringToIndex:MIN(text.length, 4)];
newString = [newString stringByAppendingString:subString];
if (subString.length == 4) {
newString = [newString stringByAppendingString:@"-"];
}
text = [text substringFromIndex:MIN(text.length, 4)];
}
newString = [newString stringByTrimmingCharactersInSet:[characterSet invertedSet]];
if (newString.length >= 24) {
return NO;
}
[textField setText:newString];
return NO;
}
[self.textField.text stringByReplacingOccurrencesOfString:@"-" withString:@""]
以上是判斷使用者輸入的銀行卡號是否正確的方法_正規表示式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

最近有很多win11遇到了輸入體驗對話框總是閃爍,關也關不掉的問題,這其實是由於win11的默認系統服務和組件導致的,我們需要先禁用相關服務,再禁用輸入體驗服務就可以解決了,下面一起來試試看。 win11輸入體驗怎麼關閉:第一步,右鍵開始選單,開啟「任務管理器」第二步,依序找到「CTF載入程式」、「MicrosoftIME」和「服務主機:Textinputmanagementservice」三個進程,右鍵「結束任務」第三步,打開開始選單,在上方搜尋並打開「服務」第四步,在其中找到「Textinp
![Windows輸入遇到掛起或記憶體使用率高的問題[修復]](https://img.php.cn/upload/article/000/887/227/170835409686241.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Windows的輸入體驗是關鍵的系統服務,負責處理來自各種人機介面設備的使用者輸入。它在系統啟動時自動啟動,在背景運行。然而,有時候這個服務可能會出現自動掛起或佔用過多記憶體的情況,導致系統效能下降。因此,及時監控和管理這個進程是至關重要的,以確保系統的效率和穩定性。在這篇文章中,我們將分享如何解決Windows輸入體驗被掛起或導致記憶體使用率高的問題。 Windows輸入體驗服務沒有使用者介面,但它與處理與輸入裝置相關的基本系統任務和功能有密切關聯。它的作用是幫助Windows系統理解使用者輸入的每一

搜尋列是win11系統中非常好用的功能,可以幫助我們找到想要的設定、功能和服務等。但是有的朋友遇到了win11搜尋欄無法輸入的情況,我們可以在註冊表中修改相關資料來解決,下面就跟著小編一起來解決一下吧。 win11搜尋列無法輸入怎麼辦1、首先我們可以按下鍵盤的「win+r」調出運行。 2、然後在其中輸入「regedit」回車確定開啟註冊表編輯器。 3、然後在上方路徑中輸入「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Expl

矩陣是我們經常使用和遇到的公式,但是在word裡如何輸入矩陣你會操作嗎?很多人可能沒有接觸過,遇到使用的時候就會覺得困惑,那麼,這裡我們就跟大家分享一下word矩陣怎麼輸入。希望經過這個技巧的分享,能夠帶給你幫助和啟發。 1.首先,新建並開啟一個word文檔,為了示範操作,我們就使用空白文檔進行示範。如下圖所示:2.我們要輸入矩陣,需要在選單列找到【插入】按鈕,這個按鈕可以插入很多內容選項,例如圖片等都是從這個選單列完成。 3.點選【插入】之後,我們工具選項右邊看,可以找到【公式】,然後我們點選【

問題陳述寫一個C程序,以空格分隔的整數作為數組輸入。 SampleExamples輸入12345輸出‘Arrayelementsare-’1,2,3,4,5Explanation的中文翻譯為:解釋輸入包含5個以空格分隔的整數。輸入997687542356878967343423輸出‘Arrayelementsare-’99,76,87,54,23,56,878,967,34,34,23Explanation的中文翻譯為:解釋輸入包含11個以空格分隔的整數。方法一在這種方法中,我們將把輸入中的以空

Python浮點型輸入的注意事項及範例在Python中,浮點數是一種常見的資料類型,用於表示帶有小數部分的數值。在進行浮點型輸入時,有一些注意事項需要我們了解並注意,以確保輸入的正確性和準確性。本文將介紹幾個常見的注意事項,並提供範例程式碼以加深理解。浮點型的輸入方式在Python中,浮點型的輸入方式有多種,常見的有以下幾種:直接使用浮點數進行輸入:例如:x

在PHP程式設計中,有時候我們需要對使用者輸入的資料進行限制,例如判斷輸入是否只包含數字和字母。這在實際專案開發中經常會遇到,因此掌握如何實現這項功能非常重要。本文將介紹如何使用PHP來判斷輸入只包含數字和字母,並給出具體的程式碼範例。為什麼需要判斷輸入只包含數字和字母?在網站開發中,使用者輸入的資料可能會被用於資料庫操作、文件操作等重要功能,如果使用者輸入的資料包含特

本站12月2日消息,國際清算銀行總經理阿古斯丁・卡斯滕斯訪問首爾的第二天,韓國央行(BOK)公佈了數字貨幣(CBDC)試點計劃的詳細信息,表示將有10萬名選定的韓國公民於明年第四季加入試點。本站注意到,參與者能夠使用商業銀行發行的CBDC購買商品。韓國銀行、金融委員會和金融監督院計劃在與相關組織協商並審查相關法律後,為參與測試的銀行提出聯合試點任務,並為每家銀行另外提出單獨的任務。央行表示,數位貨幣可以解決現有憑證系統的問題,例如COVID-19期間使用的憑證系統或政府兒童保育補助系統。圖源
