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

如何根据语言选择实现输入框符号转换及小数位数限制?

问题:根据选中语言转换输入框的标点符号

需求说明:

  • 有支持3种语言选择的按钮,需根据选中语言转换输入框内的符号
  • 当currentCulture为fi-us或fi-ru时,将输入中的点(.)转换为逗号(,)
  • 当currentCulture为fi-tr时,将输入中的逗号(,)转换为点(.)

现有JavaScript代码如下:

document.querySelectorAll('.form-control').forEach(function(input) {
    input.addEventListener('input', function(event) {
        let value = event.target.value;
        let currentCulture = document.querySelector('.nav-link.dropdown-toggle i').classList[1];
        console.log("User-selected language: " + userCulture);
        if (!isNaN(value) && value.includes('.')) {
            let parts = value.split('.');
            if (parts[1].length > 2) {
                parts[1] = parts[1].slice(0, 2);
                event.target.value = parts.join('.');
            }
        }
    });
});
修改后的代码
document.querySelectorAll('.form-control').forEach(function(input) {
    input.addEventListener('input', function(event) {
        let value = event.target.value;
        let currentCulture = document.querySelector('.nav-link.dropdown-toggle i').classList[1];
        // 修复原代码的变量名错误
        console.log("User-selected language: " + currentCulture);

        // 先统一处理小数位数限制,再做标点转换
        if (value.includes('.') || value.includes(',')) {
            // 把输入统一转为点分隔格式,避免两种标点干扰逻辑
            let normalizedValue = value.replace(',', '.');
            let parts = normalizedValue.split('.');
            
            // 限制小数位最多2位
            if (parts.length === 2 && parts[1].length > 2) {
                parts[1] = parts[1].slice(0, 2);
                normalizedValue = parts.join('.');
            }

            // 根据当前语言转换标点
            switch(currentCulture) {
                case 'fi-us':
                case 'fi-ru':
                    event.target.value = normalizedValue.replace('.', ',');
                    break;
                case 'fi-tr':
                    event.target.value = normalizedValue;
                    break;
                default:
                    event.target.value = value;
            }
        } else {
            event.target.value = value;
        }
    });
});
关键修改说明
  • 修复原代码console.log中的变量名错误(userCulture改为currentCulture)
  • 先将输入统一转为点分隔格式处理小数位限制,避免同时存在两种标点导致逻辑混乱
  • 添加分支判断,根据currentCulture实现对应标点转换逻辑
  • 兼容输入中同时出现点和逗号的场景,保证逻辑一致性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 09:46:01