Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使inputfield仅接受英文字母、数字和符号_C#_Unity3d - Fatal编程技术网

C# 使inputfield仅接受英文字母、数字和符号

C# 使inputfield仅接受英文字母、数字和符号,c#,unity3d,C#,Unity3d,我有一个输入字段,我希望它只接受英文字母、数字和符号。如何才能做到这一点?添加一个侦听器,当它检测到输入字段的值发生变化时,该侦听器会改变输入字段的值。在该侦听器中,将该值设置为与输入相同,但删除任何不符合要求的字符: [SerializeField] InputField inputField; void OnEnable() { //Register InputField Event inputField.onValueChanged.AddListener(inputVa

我有一个输入字段,我希望它只接受英文字母、数字和符号。如何才能做到这一点?

添加一个侦听器,当它检测到输入字段的值发生变化时,该侦听器会改变输入字段的值。在该侦听器中,将该值设置为与输入相同,但删除任何不符合要求的字符:

[SerializeField] InputField inputField;

void OnEnable()
{
    //Register InputField Event
    inputField.onValueChanged.AddListener(inputValueChanged});
}


static string CleanInput(string strIn)
{
    // Replace invalid characters with empty strings.
    return Regex.Replace(strIn,
          @"[^a-zA-Z0-9`!@#$%^&*()_+|\-=\\{}\[\]:"";'<>?,./]", ""); 
}

//Called when Input changes
void inputValueChanged(string attemptedVal)
{
    inputField.text = CleanInput(attemptedVal);
}

void OnDisable()
{
    //Un-Register InputField Events
    inputField.onValueChanged.RemoveAllListeners();
}
[SerializeField]InputField InputField;
void OnEnable()
{
//寄存器输入字段事件
inputField.onValueChanged.AddListener(inputValueChanged});
}
静态字符串输入(字符串strIn)
{
//用空字符串替换无效字符。
返回正则表达式替换(strIn,
@“[^a-zA-Z0-9`!@$%^&*()”[U1249+-=\{}\[\]:“;”?,./”,“);
}
//当输入更改时调用
无效inputValueChanged(字符串attemptedVal)
{
inputField.text=CleanInput(attemptedVal);
}
无效可禁用()
{
//取消注册InputField事件
inputField.onValueChanged.RemoveAllListeners();
}
资料来源:


这是否回答了您的问题?不是真的,我不能使用正则表达式,因为我不想从一开始就输入非英语字母。我只想要实时的英文信。你能给我一个解决方案,其中包括另一个实时更新吗?好的,你可以在Inspector中或通过代码简单地将其设置为,然后定义一个允许作为输入的字母表