当我们在iphone应用程序中使用本地化时如何转换正则表达式?

时间:2012-05-03 07:28:40

标签: iphone ios regex ipad

当我们在iphone应用程序中使用本地化和正则表达式时。当我们不使用英语时。

然后如何用相对语言转换该正则表达式。

如果我使用正则表达式以下:

+ (BOOL) isAlphabetsOnly:(NSString *) candidate {
    if (![self isEmpty:candidate]) {
        NSString *alphaRegex = @"^\\s*([A-Za-z ]*)\\s*$"; 
        NSPredicate *alphaTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", alphaRegex]; 

        return [alphaTest evaluateWithObject:candidate];
    }
    return NO;
}

这对英语很好。但不适用于其他语言。那我们怎么能把它转换成其他语言呢。所以它将以不同的语言运作。

请帮帮我。

谢谢,

2 个答案:

答案 0 :(得分:0)

您可以将正则表达式作为String放在Localizable.strings文件中。

然后你可以通过以下方式获得它:

  

的NSString   * myRegularExpression = NSLocalizedString(@ “my_regular_expression”,无);

答案 1 :(得分:0)

我从来没有在iOS上工作,但根据here,如果你使用类似的东西:^\\s*([\\s]*)\\s*$应该适用于不同的语言环境。

  

\ w匹配单词字符。单词字符是   [\ p {的L1} \ p {路} \ p {LT} \ p {螺} \ p {钕}]。

编辑:是的你是对的,我的不好。正如here中所述,您应该能够使用\p{L}来完成所需的任务,您应该能够匹配任何字母: ^\\s*([\\p{L}\\s]*)\\s*$