我想以 XXX.X 格式从文本字段中快速读取文本。假设采用 XXX.X 格式,我的意思是:
- 123.3 有效
- 48.2 有效
- 1.4 有效
- 4 有效
- 4.3.4 无效
- 5555.5 无效
- 123.34 无效
换句话说,句点左侧的文本最多只能有 3 个字符,如果用户没有输入“.”,则左侧的文本只能有 1 个字符或根本没有字符
p>目前,我的代码仅适用于限制“.”的数量
func textField(textField: UITextField,shouldChangeCharactersIn range: NSRange,replacementString string: String) -> Bool
{
let countdots = textField.text.components(separatedBy: ".").count)! - 1
if countdots > 0 && string == "."
{
return false
}
return true
}
最佳答案
func valid(_ s:String) -> Bool {
func roundToPlaces(value:Double, places:Int) -> Double {
let divisor = pow(10.0, Double(places))
return round(value * divisor) / divisor
}
if let num = Double(s) {
if num >= 1000.0 {
return false
}
if roundToPlaces(value:num, places:1) != num {
return false
}
return true
} else {
return false
}
}
测试您的输入:
let test = [
"123.3",
"48.2",
"1.4",
"4",
"4.3.4",
"5555.5",
"123.34"
]
for s in test {
print(valid(s))
}
结果:
true
true
true
true
false
false
false
这就是您的输入和所需的输出。
关于ios - 如何快速从 UItextfield 读取特定格式( XXX.X )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47604502/