javascript - 从 JavaScript INLINE 中去除非数字或小数

标签 javascript regex

我正在尝试修改现有的 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/

相关文章:

javascript - 为什么一个 RxJS Subject 比多个事件监听器更快?

javascript - 从纬度和经度生成谷歌地图

javascript - 一组多边形的外部包络

python - 无法匹配 url 正则表达式中电子邮件地址后的尾随斜杠

javascript - 按最匹配的列表项对列表进行排序

javascript - vue.js/vue-router - 创建单个文件组件的实例,并使用要路由到的 props

javascript - 匹配一个序列,除非它前面有另一个带有正则表达式的序列(Javascript)

regex - sed命令显示

javascript - 从 javascript 中的对象数组替换模板中的键

java - 正则表达式查找包含在两个括号之间的字符串