今天寫一個正則表達式,完成這樣的需求:對輸入的文字進行檢查,要求輸入的內容容許包含小寫字母、文字和_-./這四個字母。正則表達式
因而我寫的代碼以下:工具
//用戶名是否有效測試
+(BOOL) validateUserName:(NSString *)name網站
{lua
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",@"[a-z0-9_-./]*"];spa
BOOL bMatch = [predicate evaluateWithObject:name];orm
return bMatch;string
}it
可是運行程序的時候對輸入的進行校驗時,崩潰date
崩潰內容以下:
Can't do regex matching, reason: Can't open pattern U_REGEX_INVALID_RANGE (string 1111, pattern [a-z0-9_-./]*, case 0, canon 0)
而後我把寫的這則表達式放到網上的正則表達式檢查工具進行檢測,發現「-」這個鏈接符須要轉義。不然就是錯誤的正則表達式。
因而我進行修改一下,就OK了。
//用戶名是否有效
+(BOOL) validateUserName:(NSString *)name
{
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",@"[a-z0-9_\\-./]*"];
BOOL bMatch = [predicate evaluateWithObject:name];
return bMatch;
}
注:下次不肯定正則是否正確時候,能夠到網上的正則網站是進行測試。避免浪費沒必要要的時間。