我有三个文本字段,分别是家庭电话,工作电话和手机。我需要为这些字段进行验证和数字格式化。下面显示的是条件。
家庭电话和工作电话文本字段不应接受超过10位且少于8位数字。字段应仅接受数字。数字的格式应该是 xxxx-xxxx(如果是8位数) xx-xxxx-xxxx(如果是10位数)
移动电话号码字段不应超过10位数。字段应仅接受数字。数字的格式应该是 XXXX-XXX-XXX
我不知道如何实现这一目标。请帮帮我。
答案 0 :(得分:1)
我认为你可以通过以下方式实现这一目标:
答案 1 :(得分:0)
稍晚但它可能有助于其他一些,格式化XXX-XXX-XXXX格式的UITextfield文本
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
var number = textField.text as NSString? ?? ""
number = number.replacingCharacters(in: range, with: string) as NSString
number = number.replacingOccurrences(of: "-", with: "") as NSString
if (number.length > 10) {
return false;
}
self.resetBtnState(numberLength: number.length)
var groupSize = 3
let separator = "-"
if string.characters.count == 0 {
groupSize = 5
}
let numformatter = NumberFormatter()
numformatter.groupingSeparator = separator
numformatter.groupingSize = groupSize
numformatter.usesGroupingSeparator = true
numformatter.secondaryGroupingSize = 3
if var number = textField.text, string != "" {
number = number.replacingOccurrences(of: separator, with: "")
if let doubleVal = Double(number) {
let requiredString = numformatter.string(from: NSNumber.init(value: doubleVal))
textField.text = requiredString
}
}
return true
}