首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在UITextField中只允许数字和字母且不包含任何空格和8个字符

在UITextField中只允许输入数字和字母且不包含任何空格和8个字符,可以通过以下步骤实现:

  1. 设置UITextField的代理对象为当前视图控制器或自定义的代理类,以便监听输入事件和进行限制。
  2. 实现UITextFieldDelegate协议中的shouldChangeCharactersIn方法,该方法在每次输入改变时被调用。
  3. 在shouldChangeCharactersIn方法中,获取当前输入的字符,并进行判断。
  4. 使用正则表达式来验证输入的字符是否符合要求。可以使用NSRegularExpression类来创建一个只允许数字和字母的正则表达式。
  5. 如果输入的字符不符合要求,可以返回false来阻止输入,或者给出提示信息。
  6. 如果输入的字符符合要求,可以返回true来允许输入。

以下是一个示例代码:

代码语言:txt
复制
import UIKit

class ViewController: UIViewController, UITextFieldDelegate {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let textField = UITextField(frame: CGRect(x: 50, y: 100, width: 200, height: 30))
        textField.borderStyle = .roundedRect
        textField.delegate = self
        self.view.addSubview(textField)
    }
    
    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        // 创建只允许数字和字母的正则表达式
        let regex = try! NSRegularExpression(pattern: "^[a-zA-Z0-9]*$", options: .anchorsMatchLines)
        let fullString = (textField.text ?? "") + string
        
        // 判断输入的字符是否符合要求
        if regex.firstMatch(in: fullString, options: [], range: NSRange(location: 0, length: fullString.count)) == nil {
            return false
        }
        
        // 判断输入的字符是否包含空格和8个字符
        if fullString.contains(" ") || fullString.count > 8 {
            return false
        }
        
        return true
    }
}

在上述示例代码中,我们创建了一个UITextField,并将其代理对象设置为当前视图控制器。在代理方法shouldChangeCharactersIn中,我们使用正则表达式来验证输入的字符是否只包含数字和字母。如果输入的字符不符合要求或包含空格和8个字符,就返回false来阻止输入。否则,返回true允许输入。

这是一个简单的实现,你可以根据实际需求进行修改和扩展。腾讯云相关产品和产品介绍链接地址可以根据具体情况选择适合的产品,例如云服务器、云数据库、云存储等。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS-UITextField 全面解析iOSUITextField 使用全面解析UITextField的代理方法通知UITextField 在storyboard 设置属性

iOSUITextField 使用全面解析 建议收藏,用到的时候来这里一查就都明白了 //初始化textfield并设置位置及大小 UITextField *text = [[UITextField...下拉菜单中有四个选项: 13.1 None : 不设置大写 13.2 Words : 每个单词首字母大写,这里的单词指的是以空格分开的字符串 13.3 Sentances : 每个句子的第一个字母大写...,这里的句子是以句号加空格分开的字符串 13.4 All Characters : 所以字母大写 14、Correction : 检查拼写,默认是 YES 。...15、Keyboard : 选择键盘类型,比如全数字字母数字等。...18、Auto-enable Return Key : 选择此项,则只有至少在文本框输入一个字符后键盘的返回键才有效。

7.2K60
  • iOS小技能:提取数字(文本框对粘贴内容进行手机号码提取)

    : //invertedSet方法是去反字符,把所有的除了@"0123456789"里的字符都找出来(包含空格功能)替换成"" truePhone...== UserEnterViewType4PhoneNO) { //登录界面的【请输入手机号】文本框,对粘贴内容进行格式判断:经过前后空格处理之后,只有当内容为11位数以内的数字才可以进行粘贴成功...return YES; } } 正则:11位的数字 #pragma 正则,11位的数字 + (BOOL)checkEmployeeNumber: (NSString *) number...return isMatch; } ———————————————— III 商户进件基本信息条件限制 3.1 “•”特殊字符处理 把大的圆点替换成英文半角的小圆点 新疆或外国人姓名中间有间隔符”·“,迪巴...,后面还能输1字母,但不能输1文 // _subLength=l+a+b;//_subLen是要截取字符串的位置 // }

    1.2K50

    编码篇-iOS开发的奇巧小伎

    7.统一收起键盘 8.导入自定义字体库 9.动态方法的动态执行 10.isKindOfClassisMemberOfClass的区别 11.Label字体大小 12.为UIView某个角添加圆角 13...互转 19.检查一个rect是否包含一个point 20.UITextView打开或禁用复制,剪切,选择,全选等功能 21.用stringByReplacingOccurrencesOfString方法去掉空格...需要传入多参数问题 23、比较两个CGRect/CGSize/CGPoint是否相等 24、比较两个NSDate相差多少小时 25、播放一张张连续的图片 26、判断两个rect是否有交叉 27、判断一个字符串是否为数字...光标 37、当UITextView/UITextField没有文字时,禁用回车键 38、通知监听APP生命周期 39、获取collectionViewCell在屏幕的frame 40、UITextField...1024,也就是animate_0、animate_1一直到a 26、判断两个rect是否有交叉 if (CGRectIntersectsRect(rect1, rect2)) { } 27、判断一个字符串是否为数字

    5.4K10

    iOS小技能:NSPredicate在正则表达式的应用

    例如,“o{1,3}”将匹配“fooooood”的前三个o。“o{0,1}”等价于“o?”。请注意在逗号两个数之间不能有空格。 ? 当该字符紧跟在任何一个其他限制符(*,+,?...匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”的“a”。 [^xyz] 负值字符集合。匹配未包含的任意字符。例如,“[^abc]”可以匹配“plain”的“plin”。...匹配任何不在指定范围内的任意字符。例如,“[^a-z]”可以匹配任何不在“a”到“z”范围内的任意字符。 \b 匹配一个单词边界,也就是指单词空格间的位置。...等价于\x0d\cM。 \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。 \S 匹配任何非空白字符。等价于[^ \f\n\r\t\v]。...而正则表达式[0-9]{4,6} 匹配连续的任意4个、5个或者6个数字 III 从数组搜索特定条件的元素 从数组筛选type=8的电子签名数据,避免遍历数组 certificateInfoList

    85920

    sed 命令+正则表达式

    假定要匹配任意一个数字,可以使用:[ 0 1 2 3 4 5 6 7 8 9 ]    要匹配任意字母,则使用:[ A - Z a - z ]表明从A - Z、a - z的字母范围。...\s:用于匹配单个空格符,包括tab键换行符;   \S:用于匹配除单个空格符之外的所有字符;   \d:用于匹配从0到9的数字;   \w:用于匹配字母数字或下划线字符;   \W:用于匹配所有与...(说明:我们可以把\s\S以及\w\W看作互为逆运算)   下面,我们就通过实例看一下如何在正则表达式中使用上述元字符。   .../([a-z][A-Z][0-9])+/    上述正则表达式将会与任何字母数字组成的字符串, “aB0” 等相匹配。...“()”符号包含的内容必须同时出现在目标对象。因此,上述正则表达式将无法与诸如 “abc”等的字符串匹配,因为“abc”的最后一个字符字母而非数字

    3.4K20

    快速掌握grep命令及正则表达式

    自带了支持拓展正则表达式的 GNU 版本 grep 工具,所有的Linux发行版均默认安装grep ,grep 被用来检索一台服务器或工作站上任何位置的文本信息, 如何在 Linux 系统类 Unix...,你可以匹配字母:grep '[A-Za-z]' FILENAME显示所有包含 “w” 或 “n” 字母的文本行:grep [wn] FILENAME在括号内的表达式,在“ [: ”“ :] ”中所附的字符类的名称...标准字符类名称:[:alnum:] – 字母数字字符。[:alpha:] – 字母顺序[:blank:] – 空格制表符。[:digit:] – 数字: ‘0 1 2 3 4 5 6 7 8 9’。...在下面的例子,查询了所有以字母 “b” 开头、字母 “t” 结尾的三个字符的单词。...你可以使用下面的语法测试一个字符在序列的重复的次数:{N}{N,}{min,max}匹配包含两个字母 v 的字符串结果:egrep "v{2}" FILENAME下面的例子中将检索文件内包含 “col

    1.5K40

    PHP的基本规则

    除非字符串中有特殊情况,否则,在程序以及HTML不允许出现两个连续的空格任何情况下,PHP程序的空白行应当不包含任何TAB或空格。同时,任何程序行尾也不能出现多余的TAB或空格。...; A.2  命名约定 A.2.1  类 类名只允许字母数字字符,但不鼓励使用数字。...下划线只允许作为路径分隔符,Zend/ Db/Table.php文件对应的类名称是Zend_Db_Table。...A.2.4  函数方法 函数名只能包含字母数字字符,但不鼓励使用数字,不允许使用下划线。 函数名总是以小写字母开头,当函数名包含多个单词时,每个单词的首字母必须大写,这就是所谓的"驼峰"格式。...A.2.6  常量 常量包含数字字母下划线,数字允许作为常量名。 常量名的所有字母必须大写。

    5.1K50

    grep note

    ,你可以匹配字母:grep '[A-Za-z]' FILENAME 显示所有包含 “w” 或 “n” 字母的文本行:grep [wn] FILENAME 在括号内的表达式,在“ [: ”“ :] ”...标准字符类名称: [:alnum:] – 字母数字字符 [:alpha:] – 字母顺序 [:blank:] – 空格制表符 [:digit:] – 数字: ‘0 1 2 3 4 5 6 7 8 9’...来代替单个字符。在下面的例子,查询了所有以字母 “b” 开头、字母 “t” 结尾的三个字符的单词。...grep '\' FILENAME 在上面的例子, \< 在单词的开始位置匹配空格字符串 \> 在单词的结尾匹配空格字符串 检索并输出所有两个字母的结果:grep '^..$' FILENAME...你可以使用下面的语法测试一个字符在序列的重复的次数: {N} {N,} {min,max} 匹配包含两个字母 v 的字符串结果:egrep "v{2}" FILENAME 下面的例子中将检索文件内包含

    2.7K20

    匹配电子邮箱的正则表达式_怎样设置电子邮箱

    电子邮件格式   电子邮件地址的格式是域内部分@域,其中域内部分最长为64个字符,而域名最长可达255个字符。...例如: name@domain name 可以使用任意ASCII字符: 大小写英文字母 a-z,A-Z 数字 0-9 name部分只允许输入 ‘-’、’_’、’.’。...^`{|}~   甚至空格都可以输入,但是有些邮件服务器会拒绝包含有特殊字符的邮件地址 一般来说只允许输入 ‘-’、’_’、’.’这三个特殊符号 字符 ‘.’...不能是第一个最后一个,不能连续出现两次 domain 仅限于26个英文字母、10个数字、连词号- 连词号-不能是第一个字符 顶级域名(com、cn等)长度为2到6个 正则表达式 (?...发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    87520

    iOS开发——定制UITextField

    之前的文章我们讲过UITextField,如何设置leftView,圆角以及控制文字输入时的距离。...今天我们主要从UITextField的键盘收起、placeholder的设置以及自定义距离、字体,以及控制输入文本时,距离UITextField边框的距离UITextField中一些常用的方法枚举变量等方面来阐述如何定制自己的...键盘的收起 首先我们先来看UITextField的键盘弹出回收,UITextField在默认的情况下,键盘在输入完成后是不会自动回收的,这里我们讲解如何在按下Return键时,键盘自动回收。...至于placeholder的字体字体大小设置 可以用如下方法设置,记住这个方法写在子类化的UITextField是没有效果的,一定要写在创建UITextField的过程。...,在什么时候显示,用于一次性删除输入框的内容 text.clearButtonMode = UITextFieldViewModeAlways; //每输入一个字符就变成点 用语密码输入 text.secureTextEntry

    1.6K40

    java标识符有哪些_java标识符有哪些?java标识符有哪些不合法?

    、下划线(_)和美元符号($),也可以是Unicode字符集中的字符,汉字; 字母数字等字符的任意组合,不能包含+、- *等字符; 不能使用关键字; 大小写敏感 拓展: 1、java标识符有哪些?...标识符可以有一个或多个字符。在 Java 语言中,标识符的构成规则如下。...标识符由数字(0~9)字母(A~Z a~z)、美元符号($)、下划线(_)以及 Unicode 字符集中符号大于 0xC0 的所有符号组合构成(各符号之间没有空格)。...标识符的第一个符号为字母、下划线和美元符号,后面可以是任何字母数字、美元符号或下划线。 另外,Java 区分大小写。 2、java标识符有哪些不合法?...提示:标识符命名时,切记不能以数字开头,也不能使用任何 Java 关键字作为标识符,而且不能赋予标识符任何标准的方法名。 使用标识符时一定要注意,或者使用关键字,或者使用自定义的非关键字标识符。

    1.7K10

    反转字符串的单词

    给你一个字符串 s ,请你反转字符串 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串的 单词 分隔开。...返回的结果字符串,单词间应当仅用单个空格分隔,且不包含任何额外的空格。...= "the sky is blue" 输出:"blue is sky the" 示例 2: 输入:s = "  hello world  " 输出:"world hello" 解释:反转后的字符串不能存在前导空格尾随空格...提示: 1 <= s.length <= 104 s 包含英文大小写字母数字空格 ' ' s 至少存在一个 单词 简介一下语法 stringstream ssin(s); //此处的ssin以后就可以当做...cin用 它读的是s的单词 string x; while (ssin>>x) cout<<x<<"66"; 它会忽略空格只读单词 s="hello hi world" 输出为 hello66hi66world66

    26910

    计算机二级Python考点解析第一天

    缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数,通常使用4个空格的缩进,如下: # absolute value k = 2 if k >= 0: print(a) else...如果'本身也是一个字符,那就可以用""括起来,比如"I'm Jack"包含的字符是I,',m,空格,J,a,c,K这8个字符。...集合 Set setdict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set,没有重复的key,s = set([1, 2, 3])。...变量 变量不仅可以是数字,还可以是任意数据类型。变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字_的组合,且不能用数字开头,a=1;b=’Jack’。...包——与模块命名方法一样,package、package_name。 类——使用首字母大写单词串。ClassName,内部类可以使用额外的前导下划线,__init__。

    66020

    1.注册或登录页面设计:UILabel,UIButton,UITextField

    说明: 这里为了展现UITextField的文本框关联键盘的设置,这里把“密码”“确定密码”的关联键盘都设置为数字键盘,实际应用密码一般都允许为数字字母。 实现了键盘收回操作。...有数字小数点 UIKeyboardTypeTwitter,   //优化的键盘,方便输入@、#字符 UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable...UITextAutocapitalizationTypeSentences, 句子的首字母大写 UITextAutocapitalizationTypeAllCharacters, 所有字母都大写...有数字小数点 UIKeyboardTypeTwitter,   //优化的键盘,方便输入@、#字符 UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable...8, 8, 8)]; nextStepDownImage = [nextStepDownImage resizableImageWithCapInsets:UIEdgeInsetsMake(8

    2.4K50

    正则表达式快速入门

    普通字符包括可打印字符(大小写的字母数字、部分特殊字符)一些不可打印的字符(比如换行符,制表符Tab空格等),以及正则表达式规定的特殊字符。...匹配所包含的任意一个字符[abc] 可以匹配 plain 的 a[^xyz]字符补集。匹配指定字符外的任意字符[^abc]+” 匹配 plain 的 pl in[a-z]字符范围。...匹配不在指定范围内的任意字符[^a-z]可以匹配任何不在 a 到 z 范围内的任意字符\b匹配单词边界,指单词空格间的位置。...等价于 [^0-9]\s匹配任意不可打印字符,空格、制表符、换行符等\S匹配任意可打印字符\w匹配任意一个组成单词的字符,包括下划线、字母数字汉字等 Unicode 字符,类似但不等价于[A-Za-z0...假设账号以字母开头,5-16 个字符只允许字母数字下划线。 ^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 匹配 IP 地址。

    1.2K20

    LeetCode 6079. 价格减免

    题目 句子 是由若干个单词组成的字符串,单词之间用单个空格分隔,其中每个单词可以包含数字、小写字母、和美元符号 '$' 。 如果单词的形式为美元符号后跟着一个非负实数,那么这个单词就表示一个价格。...例如 "6.75" 表示价格,而 "100"、" 给你一个字符串 sentence 一个整数 discount 。...对于每个表示价格的单词,都在价格的基础上减免 discount% ,并 更新 该单词到句子。 所有更新后的价格应该表示为一个 恰好保留小数点后两位 的数字。 返回表示修改后句子的字符串。...提示: 1 <= sentence.length <= 10^5 sentence 由小写英文字母数字、' ' '$' 组成 sentence 不含前导尾随空格 sentence 的所有单词都用单个空格分隔...所有价格都是 正 整数且不含前导零 所有价格 最多 为 10 位数字 0 <= discount <= 100 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems

    56020

    python字符串常用方法及汇总

    expandtabs(tabsize=8) tabsize – 指定转换字符串的 tab 符号(’\t’)转为空格的字符数。...把字符串的 tab 符号(’\t’)转为空格,tab 符号(’\t’)默认的空格数是 8。 maketrans(intab, outtab) intab – 字符串要替代的字符组成的字符串。...end – 结束索引,默认为字符串的长度 检测字符串是否包含子字符串 str ,如果指定 beg(开始) end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串的起始位置...编码解码 bytes.decode(encoding=“utf-8”, errors=“strict”) encoding – 要使用的编码,”UTF-8″。...默认编码为 ‘utf-8’。 encode(encoding=‘UTF-8’,errors=‘strict’) encoding – 要使用的编码,: UTF-8

    73020

    PHP正则表达式笔记与实例详解

    三、 正则表达式的组成部分:        原子包括以下内容:         > 单个字符数字a-z,A-Z,0-9。        ...                  a-z表示小写字一位数字构成的两位字符                   [a-zA-Z0-9] 表示任意一位大小字母数字         [^] 表示除括号内原子之外的任何字符...表示最小匹配所有字符(拒绝贪婪匹配) d 匹配一个数字;等价于[0-9] D 匹配除数字以外任何个字符;等价于 w 匹配一个英文字母数字或下划线;等价于[0-9a-zA-Z_] W 匹配除英文字母...、数字下划线以外任何个字符;等价于 s 匹配一个空白字符;等价于[fnrtv] S 匹配除空白字符以外任何个字符;等价于 f 匹配一个换页符等价于 x0c 或 cL n 匹配一个换行符;等价于...a-z]/","12345a6789")){ //匹配字串是否包小写字母 //if(preg_match("/[0-9]{2}/","qwe89rqw9re8qwer",$a)){ //匹配字串是否包两位的数字

    1.1K00
    领券