我正在尝试对护照号码实施正则表达式验证。
我的要求是
我尝试使用下面的正则表达式
^(?!0{3,20})[a-zA-Z0-9]{3,20}$
这似乎适用于大多数情况,但如果我的文本包含 3 个或更多前导零,它似乎会失败。例如“00000001”。
比赛示例
任何帮助将不胜感激。
这个怎么样?
^(?!^0+$)[a-zA-Z0-9]{3,20}$
我们可以说“拒绝任何包含 0 的内容”,而不是“拒绝包含 3-20 个零的值”(无论长度如何,因为 20 无论如何都会失败) <3 and >
对于 1 个字母和 7 个数字:
[A-Z]{1}[0-9]{7}
对于 2 个字母和 7 个数字:
[A-Z]{2}[0-9]{7}
--
func validatePassport(from value: String?) throws {
guard let passportNo = value, !passportNo.isEmpty else {
throw MyError.noPassport
}
let PASSPORT_REG_EX = "[A-Z]{1}[0-9]{7}"
let passport = NSPredicate(format:"SELF MATCHES %@", PASSPORT_REG_EX)
if !passport.evaluate(with: passportNo) {
throw MyError.invalidPassport
}
}
看到了这个表情
^[A-Z0-9<]{9}[0-9]{1}[A-Z]{3}[0-9]{7}[A-Z]{1}[0-9]{7}[A-Z0-9<]{14}[0-9]{2}$
*r'^[a-zA-Z0-9]{3,20}$'*
使用此表达方式
此正则表达式旨在匹配以下字符串:以指定字符(^ 和 $)开始和结束。