gpt4 book ai didi

javascript - JavaScript 中美元金额的正则表达式

转载 作者:可可西里 更新时间:2023-11-01 01:20:59 25 4
gpt4 key购买 nike

我知道这已经做过一千次了,但我很难把它做好。我需要为美元金额格式化文本输入的值。不允许有逗号。只允许保留两位小数。应允许的示例:

  • 100
  • 100.10
  • 100 美元
  • 100.25 美元

下面是我目前不完整的正则表达式。它目前允许在任何地方(不仅仅是开头)包含多个美元符号,在任何地方包含多个小数点,以及超过两位小数,这是不应该的。

<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" language="Javascript">
$(function(){

jQuery('.dollarAmountOnly').keyup(function () {
this.value = this.value.replace(/[^$0-9\.]/g, '');
});
});
</script>
</head>
<body>
<input type="text" class="dollarAmountOnly"/>
</body>
</html>

非常感谢您的帮助。谢谢!

最佳答案

编辑

抱歉,您的问题明确要求精确到小数点后两位。这就是你想要的:

var r = /^\$?[0-9]+(\.[0-9][0-9])?$/;

console.log(r.test("12.55")); //true
console.log(r.test("$12.55")); //true
console.log(r.test("$12")); //true

console.log(r.test("$12.")); //false
console.log(r.test("$12.2")); //false
console.log(r.test("$$12")); //false
console.log(r.test("$12.555")); //false

你必须转义你的美元符号,然后你想要小数点后的两个选项数字:

var r = /^\$?[0-9]+\.?[0-9]?[0-9]?$/;

console.log(r.test("12.55")); //true
console.log(r.test("$12.55")); //true
console.log(r.test("$12.")); //true
console.log(r.test("$12")); //true

console.log(r.test("$$12")); //false
console.log(r.test("$12.555")); //false

Fiddle

或者,要允许小数点后的任意数字,您可以使用 Kleene 闭包而不是两个可选数字

var r = /^\$?[0-9]+\.?[0-9]*$/;

console.log(r.test("12.55")); //true
console.log(r.test("$12.55")); //true
console.log(r.test("$12.")); //true
console.log(r.test("$12")); //true
console.log(r.test("$12.555")); //true

console.log(r.test("$$12")); //false

关于javascript - JavaScript 中美元金额的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8829765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com