gpt4 book ai didi

regex - 检查字符串内的值

转载 作者:行者123 更新时间:2023-11-30 10:17:59 25 4
gpt4 key购买 nike

这不应该那么难...

我想检查依赖于 UIDatePicker 的标签的值,并在用户未成年时返回警报消息。一切正常,除了约束定义中的某个地方有错误。

正在读取的字符串采用长日期格式,例如“1965 年 11 月 18 日”

即使在 2010 年至 2015 年之间的某些年里,它“有时”有效,有时根本不起作用。我尝试将第二个括号更改为 [0-9] ,它表示用户在任何年份都未成年,这意味着语法有问题或者我可能遗漏了一些东西?预先感谢您的帮助!

func isValidBirthday(testStr4:String) -> Bool {
println("validate birthday: \(testStr4)")

let birthdayRegEx = "[A-Z0-9a-z ]+[, ]+[1900-2010]"

if let birthdayTest = NSPredicate(format: "SELF MATCHES %@", birthdayRegEx) {
return birthdayTest.evaluateWithObject(testStr4)
}

return false
}

最佳答案

这里的问题在于你的正则表达式。您不能仅按照您尝试的方式匹配 1900-2010 范围内的数字。相反,尝试

let birthdayRegEx = "[A-Z0-9a-z ]+[, ]+(19[0-9][0-9]|200[0-9]|2010)"

但是,似乎更自然的方法是将字符串转换为 NSDate。您可以使用类似的代码

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MMMM dd, yyyy"
let birthday = dateFormatter.dateFromString(testStr4)

然后将 testStr4 与当前日期与 timeIntervalSinceDate 进行比较。

关于regex - 检查字符串内的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29111602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com