Regex仅为货币标识float或int
Regex to identify float or int only for currency
我正在尝试使用regex来确保输入是数字或浮点值。如果用户输入了美元符号,我希望javascript将其删除并返回true。如果用户输入逗号,则返回false。
这就是我所尝试的(但是它总是返回false):
var validAmount = new RegExp('/[^0-9.]/g');
validAmount.test(numberAmount);
if(!validAmount.test(parseFloat(numberAmount))){
alert("bad Amount");
}
期望输出:
Input: 232 //output: true
Input: 1212.23 //output:true
Input: $12.23 //(remove $ sign and output:true)
Input: a23 //output:false
Input: 1,000 //(output:false)
我认为这个正则表达式可能适用于您:
amount.replace(/^'$?(['d]+'.?['d]*)$/, '$1');
我的意思是,它将返回有效的字符串(当有效输入时),或者当无效时不返回(false)。
您似乎在寻找类似/^('$?('d+('.'d+)*)?|.*)$/
的东西;
> exp = /^('$?('d+('.'d+)*)?|.*)$/
> '232'.replace(exp, '$2');
'232'
> '1212.23'.replace(exp, '$2');
'1212.23'
> '$12.23'.replace(exp, '$2');
'12.23'
> 'a23'.replace(exp, '$2');
''
> '1,000'.replace(exp, '$2');
''
/^'$?('d+|'d*'.'d+)$/
这也可能奏效。
var regex=/^'$?('d+|'d*'.'d+)$/;
alert(regex.test("232"));
http://jsfiddle.net/zhTq2/
相关文章:
- 按从高到低对多个int变量进行排序
- 如何在Javascript中读取unsigned int
- 如何将Date字段设置为等于另一个Date+Int值,该值表示月份值
- 从int值来看,Javascript日期不正确
- JavaScript警报适用于int,但不适用于string
- 如何从二进制int中获取百分比,每个位表示x%
- Chart.js:将对象而不是int值作为数据传递
- float's未返回到移动视图结束后的位置
- 如何在javascript中将Integer转换为int
- 为什么不'将字符串转换为int不正确(parseInt)
- Angular 2:如何在 GET 和 POST 请求中设置 double、float、int 和布尔类型参数
- 在Javascript中将int 12345转换为float 1.2345
- 只允许使用javascript和mootools在字段中输入int和float
- 在jquery中检测数字是INT还是FLOAT
- Regex仅为货币标识float或int
- 如果为float,则显示小数点2位;如果为int,则显示十进制0位
- 生成指定范围内的随机数-各种情况(int, float, inclusive, exclusive)
- 在jQuery中将字符串转换为int/float
- JavaScript中的parseFloat和float int有多快?
- PHP + JS getElementById().值返回int而不是float