例如:限制输入框只能输入1830,且顺序不变,否则不能输入。可以利用以下代码实现。(参考:https://blog.csdn.net/n_moling/article/details/93618903)
public static class InputFiledLimit
{
/// <summary>
/// 输入限制
/// </summary>
/// <param name="ipt">输入框</param>
/// <param name="limitStr">限制输入的字符(顺序也不能错)</param>
public static void Limit(this InputField ipt, string limitStr)
{
ipt.onValueChanged.AddListener(v => {
if (ipt.text.Equals(string.Empty))
return;
char[] LimitStrArray = limitStr.ToCharArray();
char[] IptArray = ipt.text.ToCharArray();
string lastChar = (ipt.text.ToCharArray()[ipt.text.Length - 1]).ToString();
if (IptArray.Length<=LimitStrArray.Length)
{
for(int i=0;i<IptArray.Length;i++)
{
if(IptArray[i]!=LimitStrArray[i])
{
ipt.text = ipt.text.Remove(ipt.text.Length - 1);
return;
}
}
}
else
{
ipt.text = ipt.text.Remove(ipt.text.Length - 1);
}
// if (ipt.text.Remove(ipt.text.Length - 1).Contains(lastChar) || !limitStr.Contains(lastChar))//最后一个字符与前面重复 或者 不是包含于1234
// {
// ipt.text = ipt.text.Remove(ipt.text.Length - 1);
// }
});
}
}