請有人幫助我在ObejctiveC中使用NSRegularExpression制定手機號碼驗證模式。 這裏是規則:NSRegularExpression模式爲移動沒有驗證
1. Number should start with 01
2. 3rd digit between 5 and 9
3. Total length should be 11
請有人幫助我在ObejctiveC中使用NSRegularExpression制定手機號碼驗證模式。 這裏是規則:NSRegularExpression模式爲移動沒有驗證
1. Number should start with 01
2. 3rd digit between 5 and 9
3. Total length should be 11
執行驗證將是使用正則表達式的最好方法。 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
}
注意NSRegularExpression
的initWithPattern
。您必須通過適用於您的電話號碼的模式。您可以生成一個here。這個網站也很好的教你關於RegEx。
如果你遇到困難,讓我知道你住的電話號碼的規則,然後我會寫一個正則表達式。
編輯:根據OP的評論,適合孟加拉國的RegEx將爲(01[5-9]\d{8})$
。
感謝@Jacob King分享代碼。如果你可以根據我的規則分享正則表達式,這將是非常有用的 這是我的規則: 1.數字應該以01開頭 2.第3位數字在5和9之間 3.總長度應該是11 這是孟加拉國的手機號碼格式 – Karuthedan
請參閱孟加拉語正則表達式的編輯。 –
謝謝@Jacob King,這真的很有幫助。 這是我試過的 NSError * errRegex = NULL; (「[[5-9] \\ d {8})$」選項:NSRegularExpressionCaseInsensitive錯誤:&errRegex]; NSUInteger countMatches = [regex numberOfMatchesInString:mobileNo options:0 range:NSMakeRange(0,[mobileNo length])];; – Karuthedan
你可以用正則表達式來驗證它 – mkowal87
@ mkowal87請你提供一個樣本,因爲我是新手,對我來說這很容易 – Karuthedan