UGUI系列-InputField限制输入个数以及限制输入格式

简介: UGUI InputField 组件是一个用来管理输入的组件 我们通常用来输入用户的账号,密码,或者聊天时输入文字,等等输入逻辑…在使用中,我们常常要对输入的字符串进行限制,最常见的限制有个数和格式

一、前言

UGUI  InputField 组件是一个用来管理输入的组件 我们通常用来输入用户的账号,密码,或者聊天时输入文字,等等输入逻辑…

在使用中,我们常常要对输入的字符串进行限制,最常见的限制有个数和格式


二、限制输入个数

设置Input Field组件的 Character Limit 属性就可以限制输入个数:

如下图所示:

网络异常,图片无法展示
|


三、限制输入类型

这个我们就需要研究一下Input Field组件的 Content Type 属性了

网络异常,图片无法展示
|

这个属性的功能是定义输入内容接受/限制的字符类型

一共有以下几种类型:

类型 功能
Standard 标准,可以输入任意字符
Auto corrected 自动更正,可以自动更正用户输入,并建议输入内容
Integer Number 整数,只允许输入整数
Decimal Number 小数,允许输入数字和小数点后一位
Alphanumeric 字母数字,允许字母和数字。无法输入符号
Name 名称(支持中文)自动将每个单词的首字母大写。
Email Address 电子邮件地址,允许您输入最多包含一个@符号的字母数字字符串
Password 密码:用 * 表示输入的字符,从而隐藏输入内容。允许输入任意字符
Pin 密码:用 * 号表示输入的字符,从而隐藏输入内容。仅允许输入整数
Custom 自定义:允许自定义行类型、输入类型、默认键盘类型、字符验证

这几个就没啥好说的,

网络异常,图片无法展示
|

主要讲一下自定义:

网络异常,图片无法展示
|

Line Type:行类型,允许输入单行或者多行,或者Enter 键来新建行,继续输入

网络异常,图片无法展示
|

Input Type:输入类型,有三个选项,任何字符、自动修正、密码类型

网络异常,图片无法展示
|

Keyboard Type:它可以在用户选中输入框时,调出不同类型的键盘

网络异常,图片无法展示
|

名称 功能
Default 目标平台的默认键盘
ASCLL Capable 带标准ASCII键的键盘。
Numbers And Punctuation 键盘与数字和标点符号键
URL 键盘与URL输入键
Number Pad 键盘与标准数字键
Phone Pad 键盘与适合键入电话号码的布局
NamePhone Pad 键盘与字母数字键
Email Address 带有适合键入电子邮件地址的其他键的键盘
Nintendo Network Account 带有网络账号键的键盘
Social 键盘与常用于社交媒体上的符号键,如Twitter
Search 键盘上带有“.” 空格键旁边的键,适合键入搜索词

Character Validatior:字符验证类型,有整数、小数、字母数字、名字、Email等

网络异常,图片无法展示
|

按需设置咯

如果上面还不满足你的设置,想要更加严格的限制,那么请往下看


四、代码限制输入字符

比如说用正则表达式来判断输入的字符串是否符合格式,符合格式就不管,不符合格式就把赋值输入的字符串减一位的字符串,也就相当于删除掉最后一位

关于正则表达式的应用可以看我另一篇文章:文章链接

4-1、限制输入的字符串0-9 a-f A-F

using System.Text.RegularExpressions;
using UnityEngine;
using UnityEngine.UI;
public class Input_Test : MonoBehaviour
{
    InputField m_InputField;
    private void Awake()
    {
        m_InputField = GetComponent<InputField>();
        m_InputField.onValueChanged.AddListener(OnInputFieldValueChang);
    }
    private void OnInputFieldValueChang(string inputInfo)
    {
        Regex reg = new Regex("^[A-Fa-f0-9]+$");
        if (reg.IsMatch(inputInfo))
        {
            m_InputField.text = inputInfo;
        }
        else
        {
            if (m_InputField.text == "")
            {
                m_InputField.text = "";
            }
            else
            {
                m_InputField.text = inputInfo.Substring(0, inputInfo.Length - 1);
            }
        }    
    }
}
复制代码

网络异常,图片无法展示
|



相关文章
|
7月前
|
机器学习/深度学习 编译器 C语言
【C语言】数据输出的域宽控制(如何在输出数据时控制0占位)(如何输出前导0)(保留几位小数)(乘法口诀表打印不齐)等问题
【C语言】数据输出的域宽控制(如何在输出数据时控制0占位)(如何输出前导0)(保留几位小数)(乘法口诀表打印不齐)等问题
115 0
|
3月前
给kprobe添加字符数据显示方式
给kprobe添加字符数据显示方式
|
5月前
|
语音技术
语音识别,字符串格式化,%s,%的使用,数字类型也可以占位的写法,%s,%d,%f,掌握字符串格式化的精密控制,m控制宽度,n控制小数点,用带f的方法最简单,对表达式进行格式化
语音识别,字符串格式化,%s,%的使用,数字类型也可以占位的写法,%s,%d,%f,掌握字符串格式化的精密控制,m控制宽度,n控制小数点,用带f的方法最简单,对表达式进行格式化
|
7月前
|
安全
如何快速断行、分割行、切割行、换行、限制每行字数、平均分割每行字数、序号自动换行、关键字断行等等内容格式整理
该工具用于文本格式处理,能调整每行字数、进行内容断行、提取特定格式内容等。在示例中,展示了如何将一段“交通安全教育”文字按30字每行分隔,并整理出带序号的格式。工具支持序号断行和多级序号设置,适用于笔记整理、文档格式化和内容布局优化,能提升工作效率。下载工具可从百度网盘(提取码:qwu2)或蓝奏云(提取码:2r1z)获取。
|
6月前
|
C语言
C语言-----多组输入,一个整数(1~100),表示线段长度,即“*”的数量
C语言-----多组输入,一个整数(1~100),表示线段长度,即“*”的数量
|
7月前
QT中edit控件限制输入数值以及进制转换方法
QT中edit控件限制输入数值以及进制转换方法
|
索引
uniapp一秒钟去除字符串的最后一个字符
如果在使用该字符串的过程中想要去掉它的最后一个字符,可以通过slice和substring来截取部分字符串,并返回一个新的字符串
217 0
[虚幻引擎 UE5] EditableText(单行可编辑文本) 限制只能输入数字并且设置最小值和最大值
本蓝图函数可以格式化 EditableText 控件输入的数据,让其只能输入一定范围内的整数。
535 0
|
存储 机器学习/深度学习
母牛的故事 替换空格 二进制中1的个数 不使用第三个变量交换a,b的值
母牛的故事 替换空格 二进制中1的个数 不使用第三个变量交换a,b的值
90 0
【C++之标准类型数据的格式输出2】显示字母B组成的三角形
【C++之标准类型数据的格式输出2】显示字母B组成的三角形