我不需要遮罩,但是我需要一些可以格式化货币的格式(在所有浏览器中),并且不允许键入任何字母或特殊字符。谢谢您的帮助
例:
有效期:$ 50.00
$ 1,000.53
无效:$ w45.00
$ 34.3r6
我不需要遮罩,但是我需要一些可以格式化货币的格式(在所有浏览器中),并且不允许键入任何字母或特殊字符。谢谢您的帮助
例:
有效期:$ 50.00
$ 1,000.53
无效:$ w45.00
$ 34.3r6
Answers:
JQUERY格式货币插件
http://code.google.com/p/jquery-formatcurrency/
另一个选择(如果使用的是ASP.Net剃刀视图),则可以在视图上执行
<div>@String.Format("{0:C}", Model.total)</div>
这样可以正确格式化。注意(item.total为双精度/十进制)
如果在jQuery中您还可以使用Regex
$(".totalSum").text('$' + parseFloat(total, 10).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,").toString());
@String.Format
在任何HTML或jQuery参考中都找不到。我的猜测是它与ASP.NET生成的服务器端HTML有关。原始问题是否提到了这一点?
作为为什么jQuery FormatCurrency插件是一个很好的答案的推论,我想反驳您的评论:
1. code.google.com/p/jquery-formatcurrency-不过滤掉所有字母。您可以键入一个字母,但不会删除它。
是的,formatCurrency()本身不会过滤掉字母:
// only formats currency
$(selector).formatCurrency();
但是,包含在formatCurrency插件中的toNumber()确实可以。
因此,您想这样做:
// removes invalid characters, then formats currency
$(selector).toNumber().formatCurrency();
使用jquery.inputmask 3.X。在此处查看演示
包含文件:
<script src="/assets/jquery.inputmask.js" type="text/javascript"></script>
<script src="/assets/jquery.inputmask.extensions.js" type="text/javascript"></script>
<script src="/assets/jquery.inputmask.numeric.extensions.js" type="text/javascript"></script>
和编码为
$(selector).inputmask('decimal',
{ 'alias': 'numeric',
'groupSeparator': '.',
'autoGroup': true,
'digits': 2,
'radixPoint': ",",
'digitsOptional': false,
'allowMinus': false,
'prefix': '$ ',
'placeholder': '0'
}
);
强调:
$('.price-format').inputmaks()
或 $('.price-format').each(function() { $(this).inputmask() })
$('.price-format').inputmask('decimal', { ... });
应该工作。
我曾经使用jquery格式的货币插件,但是最近一直存在很多问题。我只需要为USD / CAD格式化,所以我编写了自己的自动格式化。
$(".currencyMask").change(function () {
if (!$.isNumeric($(this).val()))
$(this).val('0').trigger('change');
$(this).val(parseFloat($(this).val(), 10).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,").toString());
});
只需设置任何应格式化为货币的输入类别,<input type="text" class="currencyMask" />
它将在任何浏览器中完美格式化。
尝试使用jQuery (没有插件)使用正则表达式货币:
$(document).ready(function(){
$('#test').click(function() {
TESTCURRENCY = $('#value').val().toString().match(/(?=[\s\d])(?:\s\.|\d+(?:[.]\d+)*)/gmi);
if (TESTCURRENCY.length <= 1) {
$('#valueshow').val(
parseFloat(TESTCURRENCY.toString().match(/^\d+(?:\.\d{0,2})?/))
);
} else {
$('#valueshow').val('Invalid a value!');
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="text" value="12345.67890" id="value">
<input type="button" id="test" value="CLICK">
<input type="text" value="" id="valueshow">
编辑:新建一个检查值是否有效/无效