如何在iOS中处理文本格式?我不是在谈论货币或小数样式。由于iOS没有setFormat(),因此有点复杂。

我想要的格式的两个示例:123.456.789-10123.456.789/1000-00

我的目的是在用户输入时设置文本字段的格式。与任何普通站点一样,例如,当您键入电话号码时。它不是来自模型或其他任何东西。用户只需要输入数字,必要时我将插入".","/""-"

最佳答案

您可以使用正则表达式进行格式化,如下所示:

NSRegularExpression *fmt = [NSRegularExpression
    regularExpressionWithPattern:@"(.{1,3})(.{1,3})(.{1,3})(.{1,2})"
                         options:0
                           error:NULL];
NSMutableString *str = [NSMutableString stringWithString:@"12345678910"];
[fmt replaceMatchesInString:str
                    options:0
                      range:NSMakeRange(0, str.length)
               withTemplate:@"$1.$2.$3-$4"];


这会将字符串转换为123.456.789-10

为了在用户键入时动态应用此格式,请预先创建NSRegularExpression *fmt,将其存储在UITextFieldDelegate中,然后在textField:shouldChangeCharactersInRange:replacementString:方法中使用它。

关于ios - CPF和CNPJ的格式文本字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11693724/

10-12 00:14
查看更多