IOS中使用正則表達式判斷表單輸入

  • 我最近的項目中需要給服務(wù)器報送數(shù)據(jù),但是在報送前需要先判斷用戶填寫數(shù)據(jù)的正確性。我對oc不是特別熟悉,沒有發(fā)現(xiàn)比較方便的方法,因此將我的解決方法記錄下來,給需要的人,當(dāng)然如果你有好方法,歡迎留言!
    關(guān)于正則表達式,請自行g(shù)oogle!

NSString+FormValidation.h

#import <Foundation/Foundation.h>

@interface NSString (FormValidation)
//判斷是否在0-99之間
- (BOOL)isValidBetween0_99;
//判斷是否在0-999之間
- (BOOL)isValidBetween0_999;
//判斷是否在1-15之間
- (BOOL)isValidBetween1_15;
//判斷是否在0-99.9之間(支持 ".",".1"等)
- (BOOL)isValidBetween0_0_to_99_9;
@end

NSString+FormValidation.m

#import "NSString+FormValidation.h"

@implementation NSString (FormValidation)
- (BOOL)isValidBetween0_99 {
    NSError* error=nil;
    NSString* regex=@"^\\d{1,2}$";
    NSRegularExpression* reg=[NSRegularExpression regularExpressionWithPattern:regex options:NSRegularExpressionCaseInsensitive error:&error];
    NSArray* match =[reg matchesInString:self options:0 range:NSMakeRange(0, self.length)];
    NSLog(@"match count %li",match.count);
    if (match.count!=0) {
        return YES;
    }
    return NO;
}
- (BOOL)isValidBetween0_999 {
    NSError* error=nil;
    NSString* regex=@"^\\d{1,3}$";
    NSRegularExpression* reg=[NSRegularExpression regularExpressionWithPattern:regex options:NSRegularExpressionCaseInsensitive error:&error];
    NSArray* match =[reg matchesInString:self options:0 range:NSMakeRange(0, self.length)];
    NSLog(@"match count %li",match.count);
    if (match.count!=0) {
        return YES;
    }
    return NO;
}
- (BOOL)isValidBetween1_15
{
    NSError* error=nil;
    NSString* regex=@"^[0-1][0-5]$|^\\d$";
    NSRegularExpression* reg=[NSRegularExpression regularExpressionWithPattern:regex options:NSRegularExpressionCaseInsensitive error:&error];
    NSArray* match =[reg matchesInString:self options:0 range:NSMakeRange(0, self.length)];
    NSLog(@"match count %li",match.count);
    if (match.count!=0) {
        return YES;
    }
    return NO;
}
- (BOOL)isValidBetween0_0_to_99_9
{
    NSError* error=nil;
    NSString* regex=@"^\\d?\\.\\d?$|^\\d{2}\\.\\d?$|^\\d{1,2}$";
    NSRegularExpression* reg=[NSRegularExpression regularExpressionWithPattern:regex options:NSRegularExpressionCaseInsensitive error:&error];
    NSArray* match =[reg matchesInString:self options:0 range:NSMakeRange(0, self.length)];
    NSLog(@"match count %li",match.count);
    if (match.count!=0) {
        return YES;
    }
    return NO;
}
@end

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

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

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