JavaScript中的正则表达式货币值

cak*_*rus 9 javascript regex

已经离开regex游戏一段时间了.试图提出一些允许用户输入货币值的信息,无论是否带有美元符号或带有/不带逗号.例如,以下所有值都应该有效:

5
5.1
5.10
$5
500,000
500,000.1
500,000.10
$100,000,000.50
etc....
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗?

Kip*_*Kip 18

这应该工作:

isValid = str.search(/^\$?[\d,]+(\.\d*)?$/) >= 0;
Run Code Online (Sandbox Code Playgroud)

逗号放置稍微严格一些(例如拒绝3,2.10):

isValid = str.search(/^\$?\d+(,\d{3})*(\.\d*)?$/) >= 0;
Run Code Online (Sandbox Code Playgroud)

从中得到一个数字:

if(isValid) {
  var num = Number(str.replace(/[\$,]/g, ''));
  ...
}
Run Code Online (Sandbox Code Playgroud)

  • 而不是`string.search(regex)>-1`,只需使用`regex.test(string)` (2认同)