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();
}
资料来源: