ios - 在iOS中允许特殊字符

标签 ios objective-c special-characters

我允许用户将一些数据输入到TextField中。用户将Š1234D输入到TextField中。

我的代码如下所示:

NSString *string = textField.text;
for (int nCtr = 0; nCtr < [string length]; nCtr++) {
                const char chars = [string characterAtIndex:nCtr];
                int isAlpha = isalpha(chars);
}

字符串输出如下所示:Š1234D然后我打印了第一个字符值,它看起来像这样:“`”而不是“Š”。为什么会这样呢?我也想在代码中允许使用特殊字符。

任何建议也将受到欢迎。需要一些指导。谢谢

最佳答案

您正在截断字符值,因为[NSString chatacterAtIndex:]返回unichar(16位)而不是char(8位)。尝试:

unichar chars = [string characterAtIndex:nCtr];

更新:还请注意,您不应该使用isalpha()来测试字母,因为它仅限于拉丁字符集,并且需要能够处理非拉丁字符的字符。请改用以下代码:
NSCharacterSet *letterSet = [NSCharacterSet letterCharacterSet];
NSString *string = textField.text;
for (NSUIntger nCtr = 0; nCtr < [string length]; nCtr++)
{
    const unichar c = [string characterAtIndex:nCtr];
    BOOL isAlpha = [letterSet characterIsMember:c];
    ...
}

关于ios - 在iOS中允许特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15110593/

相关文章:

objective-c - 如何检测 Objective-C 中的变量是否未被释放?

ios - 使用 ARKit 3.0 一次最多只能检测和跟踪 4 张图像

iphone - 将 url 参数拆分并转换为字符串值的最佳方法

android - 在 Cordova 中开发网站应用程序的正确方法是什么?

ios - 如何使用 KIF 测试框架自动确认系统警报?

ios - 选择性删除自定义手势识别器

ios - 如何获得 NSString 的正确大小或检查它是否适合 UILabel?

javascript - 字符 JavaScript

javascript - 当我使用 $ 时正则表达式不起作用

sql-server - 用于转义 LIKE 运算符通配符搜索的 T-SQL 特殊字符