检查字符串是否包含字符集之外的任何内容 swift
check if string contains anything outside of the character set swift
您好,我想检查用户输入的字符串是否包含字符集以外的任何内容(包含我的集中未指定的字符):
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_-."
我怎样才能做到这一点?提前致谢!
更新
我尝试使用
var characterSet:NSCharacterSet = NSCharacterSet(charactersInString: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLKMNOPQRSTUVWXYZ0123456789")
if (searchTerm!.rangeOfCharacterFromSet(characterSet.invertedSet).location == NSNotFound){
println("No special characters")
}
但我得到一个类型 'range?' 没有成员 'location' 错误
这是一个简单的解决方案,只需像这样使用 NSCharacterSet :-
let name1="myname" // Input
let characterSet: NSMutableCharacterSet = NSMutableCharacterSet.alphanumericCharacterSet()
characterSet.addCharactersInString("_-.")
name1.stringByTrimmingCharactersInSet(characterSet).isEmpty // If this return true, you enetered the right charcters
您可以使用自定义 NSCharacterSet charactersInString 并检查字符类型是否是该 invertedSet 的成员:
extension NSCharacterSet {
func characterInStringIsMember(aString: String) -> Bool {
var result = false
aString
.characters
.map{ UInt16(String([=10=]).unicodeScalars.first?.value ?? 0) }
.forEach { result = characterIsMember([=10=]) }
return result
}
}
let customCharSet = NSCharacterSet(charactersInString: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_-.").invertedSet
let stringTest = "abc"
if customCharSet.characterInStringIsMember(stringTest) {
print(true) //
} else {
print(false) // "false\n"
}
let stringTest2 = "abc%"
if customCharSet.characterInStringIsMember(stringTest2) {
print(true) // "true\n"
} else {
print(false)
}
您好,我想检查用户输入的字符串是否包含字符集以外的任何内容(包含我的集中未指定的字符):
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_-."
我怎样才能做到这一点?提前致谢!
更新
我尝试使用
var characterSet:NSCharacterSet = NSCharacterSet(charactersInString: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLKMNOPQRSTUVWXYZ0123456789")
if (searchTerm!.rangeOfCharacterFromSet(characterSet.invertedSet).location == NSNotFound){
println("No special characters")
}
但我得到一个类型 'range?' 没有成员 'location' 错误
这是一个简单的解决方案,只需像这样使用 NSCharacterSet :-
let name1="myname" // Input
let characterSet: NSMutableCharacterSet = NSMutableCharacterSet.alphanumericCharacterSet()
characterSet.addCharactersInString("_-.")
name1.stringByTrimmingCharactersInSet(characterSet).isEmpty // If this return true, you enetered the right charcters
您可以使用自定义 NSCharacterSet charactersInString 并检查字符类型是否是该 invertedSet 的成员:
extension NSCharacterSet {
func characterInStringIsMember(aString: String) -> Bool {
var result = false
aString
.characters
.map{ UInt16(String([=10=]).unicodeScalars.first?.value ?? 0) }
.forEach { result = characterIsMember([=10=]) }
return result
}
}
let customCharSet = NSCharacterSet(charactersInString: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_-.").invertedSet
let stringTest = "abc"
if customCharSet.characterInStringIsMember(stringTest) {
print(true) //
} else {
print(false) // "false\n"
}
let stringTest2 = "abc%"
if customCharSet.characterInStringIsMember(stringTest2) {
print(true) // "true\n"
} else {
print(false)
}