2017-07-04 50 views
-4

請有人幫助我在ObejctiveC中使用NSRegularExpression制定手機號碼驗證模式。 這裏是規則:NSRegularExpression模式爲移動沒有驗證

1. Number should start with 01 
    2. 3rd digit between 5 and 9 
    3. Total length should be 11 
+0

你可以用正則表達式來驗證它 – mkowal87

+0

@ mkowal87請你提供一個樣本,因爲我是新手,對我來說這很容易 – Karuthedan

回答

1

執行驗證將是使用正則表達式的最好方法。 iOS中有一個名爲NSRegularExpression的包裝器。不幸的是,我不能給你一些'魔術'代碼,因爲你的正則表達式可能需要與我的不同。 (鑑於我正在尋找英國的手機號碼,你可能不會)。

此代碼驗證一個字符串是否符合英國手機號碼標準。

NSString *str = @"07578565203" 
NSError *err; 
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:@"(07\d{8,9})$" options:nil error:&err]; 
NSTextCheckingResult *result [regex firstMatchInString:str options:nil range:NSMakeRange(0, str.length)]; 
if (result == 1) { 
    // number is valid 
} else { 
    // number is invalid, check err to see why 
} 

注意NSRegularExpressioninitWithPattern。您必須通過適用於您的電話號碼的模式。您可以生成一個here。這個網站也很好的教你關於RegEx。

如果你遇到困難,讓我知道你住的電話號碼的規則,然後我會寫一個正則表達式。

編輯:根據OP的評論,適合孟加拉國的RegEx將爲(01[5-9]\d{8})$

+0

感謝@Jacob King分享代碼。如果你可以根據我的規則分享正則表達式,這將是非常有用的 這是我的規則: 1.數字應該以01開頭 2.第3位數字在5和9之間 3.總長度應該是11 這是孟加拉國的手機號碼格式 – Karuthedan

+0

請參閱孟加拉語正則表達式的編輯。 –

+0

謝謝@Jacob King,這真的很有幫助。 這是我試過的 NSError * errRegex = NULL; (「[[5-9] \\ d {8})$」選項:NSRegularExpressionCaseInsensitive錯誤:&errRegex]; NSUInteger countMatches = [regex numberOfMatchesInString:mobileNo options:0 range:NSMakeRange(0,[mobileNo length])];; – Karuthedan