相关疑难解决方法(0)

从NSString中删除所有数字

我有一个带有一些括号和连字符的NSString(电话号码),因为某些电话号码已格式化.如何从字符串中删除除数字之外的所有字符?

objective-c nsstring

157
推荐指数
8
解决办法
8万
查看次数

NSPredicate电话号码

我的电话号码格式是(987)786-5645.

- (BOOL)validatePhoneNumberWithString:(NSString*)phone
{
    NSString *pNRegex = @"[(0-9)]{3}+\\ +\\[0-9-]{3}+\\[0-9]{4}";
    NSPredicate *PNTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pNRegex];
    return [PNTest evaluateWithObject:phone];
}
Run Code Online (Sandbox Code Playgroud)

我正在使用上面的代码.

这应该是什么样的正则规则?我能够弄清楚数字和括号.

关闭括号后我应该用什么来检测空格?

nspredicate ios

5
推荐指数
1
解决办法
1253
查看次数

如何从字符串中提取数值?

是否可以从字符串中提取数字.例如,我有一个字符串:

my name is shishir and my number is 98890876478
Run Code Online (Sandbox Code Playgroud)

我可以98890876478从上面的字符串中提取吗?

或者如果我的字符串是:

my name is shishir and my number is XXX98890876478XXX
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我可以提取"98890876478",它位于XXX之间.

是否有可能做到这一点?

我从服务器收到一条消息,该消息应该是上面的格式,我需要数值才能进一步操作

编辑:

这是我正在尝试使用的代码:

NSString *logString = [NSString stringWithFormat:@"%@",theXML]; 
NSString *digits = [logString stringByTrimmingCharactersInSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]]; 
NSLog(@"Message id: %i", [digits intValue]);
Run Code Online (Sandbox Code Playgroud)

哪个输出:

2010-05-21 16:37:07.092 sms[5311:207] OK: message-ID XXX110103468XXX
2010-05-21 16:37:07.851 sms[5311:207] Message id: 2
Run Code Online (Sandbox Code Playgroud)

我认为它返回两个因为size == 2.我需要检索"XXX"之间的值.

objective-c phone-number nsstring ios

3
推荐指数
1
解决办法
4058
查看次数

从Obj-C中的字符串中提取数字

我是Objective-C的新手,但在其他更高级的语言方面经验丰富.我想通过删除所有非数字字符来规范化字符串.换句话说,给定输入字符串"206-555-1212",归一化结果应为"2065551212".下面的代码片段有效,但鉴于我在其他语言中的经验似乎有点矫枉过正.有没有更好的方法呢?

编辑:输入字符串"(206)555-1212","206.555.1212","206 555 1212"等也应返回相同的标准化结果.

NSString * normalize(NSString * number)
{
    NSString *normalizedNumber = @"";
    NSString *tmpString = nil;

    NSRange searchRange;
    NSRange resultRange;
    searchRange.location = 0;
    searchRange.length = number.length;

    while (0 < searchRange.length)
    {
        resultRange = [number rangeOfCharacterFromSet:[NSCharacterSet decimalDigitCharacterSet]
                                        options:NSLiteralSearch
                                          range:searchRange];
        tmpString = [number substringWithRange:resultRange];
        normalizedNumber = [normalizedNumber stringByAppendingString:tmpString];
        searchRange.location = resultRange.location + resultRange.length;
        searchRange.length = number.length - searchRange.location;
    }

    return normalizedNumber;
}
Run Code Online (Sandbox Code Playgroud)

string objective-c normalization nsstring

3
推荐指数
2
解决办法
4848
查看次数

如何删除(从字符串

可能重复:
iphone sdk - 从字符串中删除除数字0-9之外的所有字符

我有一个电话号码的字符串

mynumber = @"(334)687-6619";

我在用

NSString *phoneURLString = [NSString stringWithFormat:@"tel:%@", phoneNumber];
NSURL *phoneURL = [NSURL URLWithString:phoneURLString];
[[UIApplication sharedApplication] openURL:phoneURL];
Run Code Online (Sandbox Code Playgroud)

拨打电话.但由于"(",")"我的方法无法拨打电话.

请建议我做一个正确的字符串

"1-800-555-1212"或类似的东西.

谢谢

iphone ipad

0
推荐指数
1
解决办法
90
查看次数