在输入掩码货币中更改货币符号或将其删除

Posted

技术标签:

【中文标题】在输入掩码货币中更改货币符号或将其删除【英文标题】:Change the currency symbol or remove it in the inputmask currency 【发布时间】:2016-05-02 17:30:26 【问题描述】:

我正在使用Robin Herbot's inputmask jquery plugin,我想将默认货币符号(默认为美元货币符号)更改为 PESO 货币符号或删除货币符号。

下面是我尝试过的,是的,符号改变了,符号被删除了,但它不会让我输入任何东西。

$(document).ready(function()
  
  $("#currency1").inputmask( alias : "currency", mask : "0.00" );
  $("#currency2").inputmask( alias : "currency", mask : "₱ 0.00" );

  
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.inputmask/3.2.6/jquery.inputmask.bundle.min.js"></script>

<label>REMOVE CURRENCY SYMBOL</label><br>
<input type="text" id="currency1" /><br>
<label>CHANGE THE CURRENCY SYMBOL</label><br>
<input type="text" id="currency2" />

【问题讨论】:

【参考方案1】:

您可以使用prefix 选项更改符号。下面是一个 sn-p,我以两种不同的方式执行此操作,修改货币别名和定义我自己的别名。

在您的版本中,您无法输入任何内容,因为 mask 属性用于限制输入并将其设置为 0.00 仅允许输入这四个字符,而没有其他任何内容。 9.99 的掩码将允许一个数字后跟一个句点和两个数字。 9 有一个特殊的屏蔽定义,允许任何数字。

Inputmask.extendAliases(
  pesos: 
            prefix: "₱ ",
            groupSeparator: ".",
            alias: "numeric",
            placeholder: "0",
            autoGroup: true,
            digits: 2,
            digitsOptional: false,
            clearMaskOnLostFocus: false
        
);

$(document).ready(function()
  
  $("#currency1").inputmask( alias : "currency", prefix: '' );
  $("#currency2").inputmask( alias : "currency", prefix: '₱ ' );
  $("#currency3").inputmask( alias : "pesos" );

  
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.inputmask/3.2.6/jquery.inputmask.bundle.min.js"></script>

<label>REMOVE CURRENCY SYMBOL</label><br>
<input type="text" id="currency1" /><br>

<label>CHANGE THE CURRENCY SYMBOL</label><br>
<input type="text" id="currency2" /><br>

<label>CHANGE THE CURRENCY SYMBOL, using an alias</label><br>
<input type="text" id="currency3" />

【讨论】:

为什么要使用!0!1 语法? falsetrue 是不是太常见了?我觉得它不必要的烦人。 @PeterVARGA 我完全不知道。也许我从某个地方复制粘贴了代码并且没有注意到这一点。谁知道呢,我几乎不记得我昨天做了什么,更不用说五年前了。编辑:我做了一些谷歌搜索,看起来在其他一些输入掩码示例中也使用了这种糟糕的语法,所以我猜是复制粘贴。 谢谢你,没有冒犯我的朋友。 :-)【参考方案2】:

使用 data-inputmask 属性的解决方案

$(document).ready(function()
  $("input").inputmask();
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.inputmask/3.2.6/jquery.inputmask.bundle.min.js"></script>

<label>REMOVE CURRENCY SYMBOL</label><br>
<input type="text" id="currency1" data-inputmask="'alias': 'decimal', 'groupSeparator': ',', 'autoGroup': true, 'digits': 2, 'digitsOptional': false, 'placeholder': '0'" style="text-align: right;"><br>
<label>CHANGE THE CURRENCY SYMBOL</label><br>
<input type="text" id="currency2" data-inputmask="'alias': 'decimal', 'groupSeparator': ',', 'autoGroup': true, 'digits': 2, 'digitsOptional': false, 'prefix': '₱ ', 'placeholder': '0'" style="text-align: right;">

【讨论】:

以上是关于在输入掩码货币中更改货币符号或将其删除的主要内容,如果未能解决你的问题,请参考以下文章

2 位小数输入掩码

如何从价格列中删除货币符号?

如何使用 XSLT 从 XML 中删除货币符号?

在 Swift 中使用 NSNumberFormatter 格式化货币输入

使用美元符号和逗号格式化货币输入字段

JavaScript 将货币分为数值和货币符号/名称