如何限制UITextField
中除点和下划线之外的特殊字符?
我尝试了下面的代码片段,但运气不好:
#define ACCEPTABLE_CHARECTERS @" ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_."
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSCharacterSet *acceptedInput = [NSCharacterSet characterSetWithCharactersInString:ACCEPTABLE_CHARECTERS];
if (![[string componentsSeparatedByCharactersInSet:acceptedInput] count] > 1){
NSLog(@"not allowed");
return NO;
}
else{
return YES;
}
}
雨燕4
let RISTRICTED_CHARACTERS = "'*=+[]\\|;:'\",<>/?%"
UITextField委托方法:
func textField(_ textField: UITextField, shouldChangeCharactersIn _: NSRange, replacementString string: String) -> Bool {
let set = CharacterSet(charactersIn: RISTRICTED_CHARACTERS)
let inverted = set.inverted
let filtered = string.components(separatedBy: inverted).joined(separator: "")
return filtered != string
}
试试这个
NSCharacterSet *set= [NSCharacterSet symbolCharacterSet];
if ([string rangeOfCharacterFromSet:[set invertedSet]].location == NSNotFound) {
// valid
} else {
// invalid
}
你可以自己做一套
NSCharacterSet *set= [NSCharacterSet characterSetWithCharactersInString:@"<all your symbols you want to ignore>"];
试试下面给出的代码块,它对我来说很好。
SWIFT 3.0
let ACCEPTABLE_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_"
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let cs = NSCharacterSet(charactersIn: ACCEPTABLE_CHARACTERS).inverted
let filtered = string.components(separatedBy: cs).joined(separator: "")
return (string == filtered)
}
目标C
#define ACCEPTABLE_CHARACTERS @" ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_."
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:ACCEPTABLE_CHARACTERS] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
return [string isEqualToString:filtered];
}
希望它也能对你起作用。
我有以下正则表达式: 我用它来验证至少一个字母 至少一个大写字母 至少一个数字 至少一个特殊字符 至少8个字符 但除此之外,我还需要限制下划线()。如果我输入password,这是正确的验证,这是真的。如果我输入这也是正确验证,这是错误的。 问题是,当所有规则都得到满足时,正则表达式就通过了。我想要一个规则来限制上面的下划线。 任何帮助都是值得的。
我能够编写一个正则表达式来验证输入框的以下标准。 至少包含14个字符 正则表达式- 然而,这个正则表达式允许其他未提及的特殊字符。我想限制所有特殊字符,除了这些
问题内容: 无论如何(在CSS中)是否要避免在页面..中引入文本和链接的下划线? 问题答案: 使用CSS。这会删除和元素的下划线: 有时您需要覆盖元素的其他样式,在这种情况下,可以在规则上使用修饰符:
我试图将文本视图字符限制为英语。但如果我复制并粘贴非英语字符,我的文本视图就会接收这些条目。谁能帮我解决这个问题。UITextView应该只接受英文字符(包括特殊字符、数字和空格)。或者,当我点击done时,如果textview包含非英语字符,它应该验证并向我发送错误消息。 提前谢谢。 下面是我的代码 此代码不允许我输入空格和特殊字符。需要帮忙解决这个问题。
问题内容: 我正在为我的应用程序创建一个RSS feed文件,在其中我想删除HTML标签,该操作由完成。但是不删除HTML特殊代码字符: 等等 请告诉我任何可用于从字符串中删除这些特殊代码字符的函数。 问题答案: 使用解码或使用删除它们: 编辑:根据雅科的评论的替代 用{2,8}或其他内容替换’+’可能会很好。当出现未编码的“&”时,这将限制替换整个句子的机会。
我希望有一个正则表达式来检查字符串是否包含大小写字母、数字、下划线以及字符限制。这些是字符串中唯一允许的类型。