前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UGUI系列-InputField限制输入个数以及限制输入格式

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

作者头像
恬静的小魔龙
发布2022-08-07 09:24:32
1.9K0
发布2022-08-07 09:24:32
举报
文章被收录于专栏:Unity3DUnity3D

一、前言

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

代码语言:javascript
复制
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);
            }
        }    
    }
}
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、限制输入个数
  • 三、限制输入类型
  • 四、代码限制输入字符
    • 4-1、限制输入的字符串0-9 a-f A-F
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档