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

Angular货币掩码如何实现从右向左输入?

实现@ngneat/input-mask货币掩码的从右向左输入

要让你的货币掩码适配价格输入场景,实现从右向左的输入行为(光标默认在右侧,输入内容向左填充),可以通过调整Inputmask的核心配置项来实现,修改后的代码如下:

import { createMask, InputmaskOptions } from "@ngneat/input-mask";

export const createCurrencyMask = (prefix: string = 'MYR'): InputmaskOptions<string> => {
  const regex = new RegExp(`[${prefix},\\s.]`, 'g'); // 新增匹配小数点,保证数值解析正确
  return createMask({
    alias: 'numeric',
    groupSeparator: ',',
    digits: 2,
    digitsOptional: false,
    prefix: `${prefix} `,
    placeholder: '0.00', // 显示完整的价格占位符
    rightAlign: true, // 强制内容右对齐,输入时向左扩展
    insertMode: false, // 关闭插入模式,输入时覆盖占位符而非插入
    radixPoint: '.',
    autoGroup: true, // 自动添加千位分隔符,提升输入体验
    parser: (value: string) => Number(value.replace(regex, ''))
  });
};

关键配置说明

  • rightAlign: true:将输入框内容设置为右对齐,用户输入时光标默认停在最右侧,输入的新数字会自动向左填充,完全贴合价格输入的习惯
  • insertMode: false:关闭插入模式后,输入的数字会从右往左覆盖占位符,避免用户误操作导致小数点位置混乱
  • placeholder: '0.00':设置完整的价格格式占位符,让用户直观了解输入规范,同时配合前两项配置,输入第一个数字时会自动放在分位(比如输入1显示MYR 0.01,输入12显示MYR 0.12)
  • autoGroup: true:自动为大数值添加千位分隔符,输入过程中无需手动输入,提升输入效率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 18:44:53