在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在开发中使用正则表达式时报了这样的问题:Call can throw, but it is not marked with 'try' and the error is not handled,即: let regex:NSRegularExpression = NSRegularExpression(pattern: "^1[3|4|5|7|8][0-9]{9}$", options: .caseInsensitive) 先看下在OC中的使用 NSError *error = NULL; NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^1[3|4|5|7|8][0-9]{9}$" options:NSRegularExpressionCaseInsensitive error:&error]; NSTextCheckingResult *result = [regex firstMatchInString:self options:0 range:NSMakeRange(0, [self length])]; if (result) { return YES; } return NO; 对比一下发现原因是没有添加错误处理,可以通过添加try解决。 最终解决后代码: do{ let regex:NSRegularExpression = try NSRegularExpression(pattern: "^1[3|4|5|7|8][0-9]{9}$", options: .caseInsensitive) let result:NSTextCheckingResult = regex.firstMatch(in: self, options:.reportProgress, range: NSMakeRange(0, self.count))! if result != nil { return true } }catch { }
return false |
请发表评论