我正在开发一个自定义的NSFormatter.我需要逐步验证用户输入...我想检查isPartialStringValid:
字符串是否只包含允许的字符"0123456789ABCDEF".我该如何验证这种情况?是否有一种方法使用NSString函数来检查字符串是否只包含一些字符?
Fra*_*rew 17
这种方法适合你吗?
NSString *string = @"FF";
NSCharacterSet *chars = [[NSCharacterSet
characterSetWithCharactersInString:@"0123456789ABCDEF"] invertedSet];
BOOL isValid = (NSNotFound == [string rangeOfCharacterFromSet:chars].location);
Run Code Online (Sandbox Code Playgroud)
paw*_*222 10
extension String {
var isHexNumber: Bool {
filter(\.isHexDigit).count == count
}
}
print("text1".isHexNumber) // false
print("aa32".isHexNumber) // true
print("AD1".isHexNumber) // true
Run Code Online (Sandbox Code Playgroud)
您可以创建一个NSCharacterSet
包含允许字符 ( + characterSetWithCharactersInString:
)的自定义,然后使用rangeOfCharacterFromSet:
. 如果返回的范围等于字符串的整个范围,则表示匹配。
另一种选择是与NSRegularExpression
.
示例代码 Swift:
func isValidHexNumber() -> Bool {
guard isEmpty == false else { return false }
let chars = CharacterSet(charactersIn: "0123456789ABCDEF").inverted
return uppercased().rangeOfCharacter(from: chars) == nil
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3050 次 |
最近记录: |