检查NSString是否包含来自其他NSString的字符 [英] Checking to see if an NSString contains characters from a different NSString

查看:93
本文介绍了检查NSString是否包含来自其他NSString的字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在寻找一种比较两个字符串的方法,看看第二个字符串是否包含第一个字符(字母,数字,其他),请让我解释一下:



例如:假设只允许使用数字和 *的密码:
参考链(1): * 0123456789 NSString 格式,否 NSArray
工作链(2)= 156/15615 = 211 NSString 格式,



我怎么知道我的链2包含2个字符(/ =),这些字符不在我的链1中?



为了简化允许的管理字母,我不想使用 NSArray 来管理链,例如函数调用:

 布尔未经授权的字母找到=检查(work_chain,reference_chain); 

您必须通过 for, NSPredicate 等。

PS:我使用的是MAC OS,而不是iOS,所以我不能使用 NSRegularExpression

解决方案

如果要使用 NSPredicate ,则可以做:

  NSPredicate * predicate = [NSPredicate predicateWithFormat:@自我匹配'[0-9 *] +']; 
if([predicate validateWithObject:@ 0 * 2481347 *]){
NSLog(@ passes!);
} else {
NSLog(@失败!);
}

这是使用 NSPredicate 的内置正则表达式匹配内容。 :)


I am looking for a way to compare two strings and see if the second string contains a character (letter, number, other) listed in the first, let me explain:

For example: Imagine a password with only digits and "*" are allowed: Reference chain (1): "*0123456789" NSString format, no NSArray Work chain (2) = "156/15615=211" NSString format,

How do I know that my chain 2 contains 2 characters (/=) which are not in my chain 1?

To simplify the management letters allowed, I do not want to use NSArray to manage a chain for example a function call:

BOOL unauthorized_letter_found = check(work_chain, reference_chain);

You it must go through "for", NSPredicate, etc. ?

PS: I'm on MAC OS, not iOS so I can not use NSRegularExpression.

解决方案

If you want to use an NSPredicate, you can do:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES '[0-9*]+'"];
if ([predicate evaluateWithObject:@"0*2481347*"]) {
  NSLog(@"passes!");
} else {
  NSLog(@"fails!");
}

This is using NSPredicate's built-in regular expression matching stuff. :)

这篇关于检查NSString是否包含来自其他NSString的字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆