Just a Computer Graphics Studio & My Life

Posts tagged ‘format’

[iOS] 檢查Email格式 (Check Email Format)

製作跟會員有關係的App,很常需要檢查Email格式 (Check Email Format),儘管知道這跟正規語言(Regular Language)有關係,但還是請高手幫我寫規則吧XD~

/**
 Theme: Check Email Format
 IDE: Xcode 8
 Language: Objective C
 Date: 105/11/14
 Author: HappyMan
 Blog: https://cg2010studio.wordpress.com/
 */

-(BOOL)isValidEmail:(NSString *)checkString
{
    BOOL stricterFilter = NO; // Discussion http://blog.logichigh.com/2010/09/02/validating-an-e-mail-address/
    NSString *stricterFilterString = @"^[A-Z0-9a-z\\._%+-]+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}$";
    NSString *laxString = @"^.+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2}[A-Za-z]*$";
    NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
    return [emailTest evaluateWithObject:checkString];
}

以後直接來這裡複製貼上吧~

參考:Check that an email address is valid on iOS

Advertisements

[iOS] 正規表達式 (Regular Expression)

我們時常有個需求,就是去判斷數字與字母的規則,比如身份證字號是一個大寫字母+九個數字。判斷方法有很多種,這裡有個非常方便的技巧,就是使用正規表達式 (Regular Expression)

我可以這麼寫⋯⋯

/**
 Theme: Regular Expression
 IDE: Xcode 7
 Language: Objective C
 Date: 105/03/05
 Author: HappyMan
 Blog: https://cg2010studio.wordpress.com/
 */
    NSString *errorMessage;
    // 確認身分證字號格式
    NSString *phoneNumber = @“L123456789";
    NSString *phoneRegex = @"[A-Z][0-9]{9}";
    NSPredicate *test = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex];
    BOOL matches = [test evaluateWithObject:phoneNumber];
    if (!matches) {
        errorMessage = @"身份證字號第一碼英文+後9碼為數字";
    }

看了以上的程式片段,就知道如何使用了吧!

那其實正規表達式還有很多種用法,就拿StackOverFlow高人指點的例子⋯⋯

How to validate a phone number (NSString *) in objective-c? Rules:

  • minimum 7 digits
  • maximum 10 digits
  • the first digit must be 2, 3, 5, 6, 8 or 9

實作解答如下:

NSString *phoneNumber = ...;
NSString *phoneRegex = @"[235689][0-9]{6}([0-9]{3})?";
NSPredicate *test = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex];
BOOL matches = [test evaluateWithObject:phoneNumber];

參考:Objective-c regex to check phone number

UTF-8 (8-bit Unicode Transformation Format)

每次開發iOS App,傳送資料到server時很常要編碼,會使用到UTF-8 (8-bit Unicode Transformation Format),可是我一直不曉得它的全名XD~這玩意兒好像只要會用就行!?

直到看見這張圖表,才知道UTF-8後來居上!看來它真的有過人之處,尤其在這行動裝置盛行年代~

UTF-8.png (繼續閱讀…)

[iOS] CSV轉Plist

寫iOS時常需要讀取檔案,我們不希望把資料key進程式碼,因為會擾亂編程觀感,而且不易修改和維護,於是將CSV轉為Plist會是個好方法! 稍微來瞭解一下CSV和Plist是什麼格式吧~

  • CSV逗號分隔值(Comma Separated Values),是一種純文本格式,用來存儲數據。在CSV中,數據的欄位由逗號分開,程序通過讀取文件重新創建正確的欄位。
  • Plist屬性列表(Property List),在Mac OS X的Cocoa,NeXTSTEP和GNUstep編程框架中,屬性列表檔案是一種用來儲存序列化後的物件的檔案,它的副檔名為.plist,因此通常被稱為plist檔。Plist檔案通常用於儲存使用者設定,也可以用於儲存捆綁的訊息

Comma Separated Values (繼續閱讀…)

標籤雲

%d 位部落客按了讚: