0

当我们在 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;
}

这对英语来说很好用。但不适用于其他语言。那么我们如何将其转换为其他语言。所以它将以不同的语言工作。

请帮我。

谢谢,

4

2 回答 2

0

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

然后,您可以通过执行以下操作来获取它:

NSString *myRegularExpression=NSLocalizedString(@"my_regular_expression",nil);

于 2012-05-03T07:29:57.790 回答
0

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

\w 匹配一个单词字符。单词字符为 [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}]。

编辑:是的,你是对的,我的错。如here\p{L}所述,您应该能够使用您应该能够匹配任何字母 来做您需要的事情:^\\s*([\\p{L}\\s]*)\\s*$

于 2012-05-03T07:39:37.773 回答