我正在尝试修改现有的 JavaScript 行,我经常使用它来格式化表单字段中的美元金额条目,以便显示美分,即使没有输入也是如此。我已经用了很多年了:
<input maxlength="7" name="dollarvalue" size="8" onChange="javascript:this.value=parseFloat(this.value).toFixed(2);" />
...但如果输入除数字或小数以外的任何内容,它就会中断...所以我想我可以添加一个 str.replace()
来过滤掉不允许的字符。它需要完全独立(如图所示),以便我可以根据需要轻松地将这一行 onChange
添加到表单字段。我在下面得到了这个,它仍然适用于数字,但没有剥离其他东西。我做错了什么?
<input maxlength="7" name="dollarvalue" size="8" onChange="javascript:this.value=parseFloat(this.value.replace('/[^0-9\.]+/g','')).toFixed(2);" />
最佳答案
正则表达式不应该有引号。你需要改变
this.value.replace('/[^0-9\.]+/g','')
到
this.value.replace(/[^0-9\.]+/g,'')
关于javascript - 从 JavaScript INLINE 中去除非数字或小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8144377/