在用户在日期选择器中输入生日后,我将在regEx中检查有效的生日。
问题是,如果手机是俄语、中文或任何其他使用其他字符的语言,RegEx将无法正常工作。
有没有一种简单的方法可以将月份转换成数字(1-12),即使月份是以字母显示的,也可以在任何语言中工作?
如果有这样一种方法,无论简单与否,检查用户是否恰好13岁或更老要容易得多,而不是仅仅使用年份。
func isValidBirthday(testStr4:String) -> Bool {
println("validate birthday: \(testStr4)")
let birthdayRegEx = "[A-Z0-9a-z, .]+(19[0-9][0-9]|200[0-3]|2003)"
let birthdayTest = NSPredicate(format: "SELF MATCHES %@", birthdayRegEx)
return birthdayTest.evaluateWithObject(testStr4)
}发布于 2015-05-04 18:58:09
我有一个检查正则表达式的实用程序类,在我的许多项目中使用
class Regex {
let internalExpression: NSRegularExpression!
let pattern: String
init(_ pattern: String) {
self.pattern = pattern
var error: NSError?
internalExpression = NSRegularExpression(pattern: pattern, options: .CaseInsensitive, error: &error)
}
func test(input: String) -> Bool {
if let matches = internalExpression?.matchesInString(input, options: nil, range:NSMakeRange(0, count(input))) {
return matches.count > 0
}
return false
}
}对于您的案例:
if Regex("^(19|20)\\d\\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$").test(DateStringValue) {
// Code to be executed in here
}希望能有所帮助。
https://stackoverflow.com/questions/30022808
复制相似问题