刚好我也是做在线表格的 你说的这种格式我之前也做过 不过是 canvas 实现的。 我简单给你说下思路吧。 const inputConfig = { // input 文本 value: '99633311', /** * 这种我就参照 excel 的 format 给你定义 * format定义规则 url: https://customformats.com/ */ format: '#,##0' }; const input = document.createElement('input'); // 聚焦 99,633,311 => 99633311 input.onfocus = () => { inputConfig.value.replace(/\B(?=(\d{3})+(?!\d))/g, ','); } // 失焦 99633311 = > 99,633,311 input.onblur = () => { inputConfig.value.replace(/\B(?=(\d{3})+(?!\d))/g, ','); } input.onchange = (e: any) => { inputConfig.value = e.target.value; } /** * 复制粘贴也是一样 format 一下 value 值 * @param e */ input.oncopy = (e: any) => { e.clipboardData.setData('text/plain', inputConfig.value); e.preventDefault(); }; input.onpaste = (e: any) => { }