我正在尝试在Swift中进行IFSCCode验证,但我面临的问题是我无法获取字符串中的前四个字母。
IFSC代码示例:
ABCD0200000
IFSC代码外观如下:
1. IFSC代码的前四个字符始终是字母 2. 第五个字符始终是零。 3. 其余部分可以是任何内容 4. IFSC代码的长度不应大于或小于11。 它应该有11个字符长。
我已经用Objective C编写了ifs代码验证代码,但我对Swift不太熟悉,因此在复制相同代码时遇到了问题。
以下是我在Objective C中编写的代码:
IFSC代码示例:
ABCD0200000
IFSC代码外观如下:
1. IFSC代码的前四个字符始终是字母 2. 第五个字符始终是零。 3. 其余部分可以是任何内容 4. IFSC代码的长度不应大于或小于11。 它应该有11个字符长。
我已经用Objective C编写了ifs代码验证代码,但我对Swift不太熟悉,因此在复制相同代码时遇到了问题。
以下是我在Objective C中编写的代码:
- (BOOL)validateIFSCCode:(NSString*)ifsccode {
if (ifsccode.length < 4) {
return FALSE;
}
for (int i = 0; i < 4; i++) {
if (![[NSCharacterSet letterCharacterSet]
characterIsMember:[ifsccode characterAtIndex:i]]) {
return FALSE;
}
}
if (ifsccode.length < 10) {
return FALSE;
}
if ([ifsccode characterAtIndex:4] != '0') {
return FALSE;
} else {
return TRUE;
}
}
在Swift 3中
func validateIfscCode(_ ifscCode : String) -> Bool{
if(ifscCode.characters.count < 4){
return false;
}
for( _ in 0 ..< 4){
let charEntered = (ifscCode as NSString).character(at: i)
}
if(ifscCode.characters.count < 10){
return false;
}
let idx = ifscCode[ifscCode.index(ifscCode.startIndex, offsetBy: 4)]
print("idx:%d",idx)
if (idx == "0"){
}
return true
}
String(string.prefix(4))
将子字符串转换为常规字符串。 - Tim Vermeulen