所以我有一个基于用户浏览器文化验证数字输入的方法。这是在asp.net webforms中。
public static bool IsNumberInCulture(object source, EventArgs e) {
TextBox validateSource = (TextBox)source;
string validateThis = validateSource.Text.Trim();
decimal result;
if (validateThis.Length > 0) {
if (decimal.TryParse(validateThis, NumberStyles.Number, UserCulture, out result)) {
if (validateThis != result.ToString("N0", UserCulture) && validateThis != result.ToString("N1", UserCulture) && validateThis != result.ToString("N2", UserCulture)) {
return false;
} else {
return true;
}
}
}
return false;
}
这看起来效果很好。除挪威数字外。
奇怪的是,浏览器正确格式化数字显示。例。 6 000,00
。
如果我在文本框中单独删除并替换数字,则数字验证为true。
如果我完全删除文本框中的数字,并输入一个新的数字,使用相同的格式(数字,空格,数字,数字,数字,逗号,数字编号),数字验证为false !!
我不明白这一点。有人有什么想法吗?