You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vaadin 8使用TextField Formatter强制大写后无法输入空格如何解决

Vaadin 8 TextField Formatter 强制大写兼容空格输入方案

问题原因

CustomStringBlockFormatter 默认的合法字符过滤规则仅包含字母、数字,未将空格纳入允许输入的字符范围,因此配置强制大写规则后会默认拦截空格输入。

解决方法

通过 Options 的 setAllowedCharacters 方法显式将空格加入允许输入的字符列表即可,无需修改原有强制大写配置,修改后的代码如下:

Options options = new Options();
options.setBlocks(dataLen);
// 显式声明允许输入的字符,包含字母、数字、空格,如需其他特殊字符可直接追加到字符串末尾
options.setAllowedCharacters("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ");
if (format[1].equalsIgnoreCase("UPPER"))
    options.setForceCase(ForceCase.UPPER);
new CustomStringBlockFormatter(options).extend(field);

补充说明

ForceCase.UPPER 规则会自动将输入的小写字符转换为大写,因此无需在允许字符列表中删除小写字母,不会影响最终输出的大写规则。

内容的提问来源于stack exchange,提问作者Chris Suen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 14:24:04