Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios CPF和CNPJ的格式文本字段_Ios_Formatting - Fatal编程技术网

Ios CPF和CNPJ的格式文本字段

Ios CPF和CNPJ的格式文本字段,ios,formatting,Ios,Formatting,我应该如何在iOS中处理文本格式?我说的不是货币或十进制样式。因为iOS没有setFormat(),所以有点复杂 我想要的格式的两个示例:123.456.789-10和123.456.789/1000-00 我的目标是在用户键入时格式化文本字段。与任何普通网站一样,例如,当您键入电话号码时。它不是来自模型或任何东西。用户只需键入数字,必要时我将插入”、“/”或“-”我几天前创建了自己的方法来检查有效的温度输入。这也有点痛苦,因为我必须检查: -只有数字 -只有一个小数点 -如果有一个负面的迹象,

我应该如何在iOS中处理文本格式?我说的不是货币或十进制样式。因为iOS没有
setFormat()
,所以有点复杂

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


我的目标是在用户键入时格式化文本字段。与任何普通网站一样,例如,当您键入电话号码时。它不是来自模型或任何东西。用户只需键入数字,必要时我将插入
”、“/”
“-”

我几天前创建了自己的方法来检查有效的温度输入。这也有点痛苦,因为我必须检查: -只有数字 -只有一个小数点 -如果有一个负面的迹象,它必须在前面

我最终使用了
[我的字符串索引:index]并检查每个字符,因为我最多只能有4个字符

编辑:

下面是一些伪代码

for (every char in your string)
    if(the index of the char % 3 == 2) //every third char, 0,2,5...
        the char must be a . or / or -

    else
        the char must be a number

几天前,我创建了自己的方法来检查有效的温度输入。这也有点痛苦,因为我必须检查: -只有数字 -只有一个小数点 -如果有一个负面的迹象,它必须在前面

我最终使用了
[我的字符串索引:index]并检查每个字符,因为我最多只能有4个字符

编辑:

下面是一些伪代码

for (every char in your string)
    if(the index of the char % 3 == 2) //every third char, 0,2,5...
        the char must be a . or / or -

    else
        the char must be a number

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

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
,将其存储在
uitextfieldelegate
中,并在
textField:shouldChangeCharactersRange:replacementString:
方法中使用它。

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

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
,将其存储在
uitextfieldelegate
中,并在
textField:shouldChangeCharactersRange:replacementString:
方法中使用。

Yeah。。这也是我最初的想法,但一想到它就真的很痛苦!是的,您需要确保每三个字符都是十进制、破折号或斜杠,这需要很多if语句。你也可以使用
nscharacterset
,或者如果你知道正则表达式(regex),你也可以使用它们。。。我已经在我的回答中编辑了一些psuedo代码,这是一个很好的观点,但我正在做一些有点不同的事情。用户只需键入数字,我将根据格式需要插入特殊字符。所以我相信做事情更容易!是 啊这也是我最初的想法,但一想到它就真的很痛苦!是的,您需要确保每三个字符都是十进制、破折号或斜杠,这需要很多if语句。你也可以使用
nscharacterset
,或者如果你知道正则表达式(regex),你也可以使用它们。。。我已经在我的回答中编辑了一些psuedo代码,这是一个很好的观点,但我正在做一些有点不同的事情。用户只需键入数字,我将根据格式需要插入特殊字符。所以我相信做事情更容易!你能更具体一点你想做什么吗?模型中的数据看起来如何,最终看起来像您提供的示例字符串?@dasblinkenlight您说得对!编辑了这个问题。你看了这个问题了吗?有你?那次搜索的头条新闻是:。@JoshCaswell是的,Josh!但正如前面提到的,它们太广泛了,不适合一个简单的文本格式,而且它们都有一些开销!你能更具体一点你想做什么吗?模型中的数据看起来如何,最终看起来像您提供的示例字符串?@dasblinkenlight您说得对!编辑了这个问题。你看了这个问题了吗?有你?那次搜索的头条新闻是:。@JoshCaswell是的,Josh!但正如前面提到的,它们太广泛了,不适合一个简单的文本格式,而且它们都有一些开销!哇!这就是我要说的!!回答得好@NSPunk嗯,我还没有尝试过将其用于字段格式设置,因此您可能会发现它的性能不如一些不依赖正则表达式的简单替代方法。不管怎样,试试看,如果有用就告诉我。如果您不再寻找改进的答案,请考虑通过单击复选标记的轮廓来接受一个;这也将为你赢得一个全新的堆栈溢出徽章。哇!!这就是我要说的!!回答得好@NSPunk嗯,我还没有尝试过将其用于字段格式设置,因此您可能会发现它的性能不如一些不依赖正则表达式的简单替代方法。不管怎样,试试看,如果有用就告诉我。如果您不再寻找改进的答案,请考虑通过单击复选标记的轮廓来接受一个;这也将为您赢得一个全新的堆栈溢出徽章。