我是加快iOS开发速度的一只新手,我只允许将数字和字母(不带空格)和8个字符(只能输入8个字符)输入UITextField。
对于只有数字和字母且没有任何空格的数字,我遵循以下逻辑:
extension [YourViewController]: UITextFieldDelegate
{
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
do {
let regex = try NSRegularExpression(pattern: ".*[^A-Za-z0-9 ].*", options: [])
if regex.firstMatch(in: string, options: [], range: NSMakeRange(0, string.count)) != nil {
return false
}
}
catch {
print("ERROR")
}
return true
}
}
我希望与此同时包括正好8个字符的逻辑。如何做到这一点!?
答案 0 :(得分:1)
尝试以下代码,它可以帮助您实现目标:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
do {
let text = (textField.text! as NSString).replacingCharacters(in: range, with: string)
let regex = try NSRegularExpression(pattern: "^([a-zA-Z0-9]{0,10})$", options: [])
if regex.firstMatch(in: text, options: [], range: NSMakeRange(0, text.count)) != nil {
return true
}
}
catch {
print("ERROR")
}
return false
}