Ios UItextField电话号码格式
我有三个文本字段,分别是家庭电话、工作电话和手机。我需要对这些字段进行验证和数字格式化。下面显示的是情况 家庭电话和工作电话文本字段不应接受超过10位且少于8位的数字。字段应只接受数字。数字的格式应为 xxxx xxxx(如果为8位数字) xx xxxx xxxx(如果是10位数字) “移动电话号码”字段不应接受超过10位数字。字段应仅接受数字。数字的格式应为 xxxx xxx xxx xxxIos UItextField电话号码格式,ios,uitextfield,nsregularexpression,Ios,Uitextfield,Nsregularexpression,我有三个文本字段,分别是家庭电话、工作电话和手机。我需要对这些字段进行验证和数字格式化。下面显示的是情况 家庭电话和工作电话文本字段不应接受超过10位且少于8位的数字。字段应只接受数字。数字的格式应为 xxxx xxxx(如果为8位数字) xx xxxx xxxx(如果是10位数字) “移动电话号码”字段不应接受超过10位数字。字段应仅接受数字。数字的格式应为 xxxx xxx xxx xxx 我不知道如何做到这一点。请帮帮我。我想你可以通过以下方法实现这一点: 在uitextfield中捕获文
我不知道如何做到这一点。请帮帮我。我想你可以通过以下方法实现这一点:
有点晚了,但它可能会帮助其他人,将UITextfield文本格式化为XXX-XXX-XXXX格式
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
}
您是否计划自己添加破折号,或者用户会这样做?破折号应该自动添加检查:您是否只计划在一个国家/地区销售您的应用程序?您可能需要考虑支持更多的格式。让生活更简单,在添加短线之前验证。