<input type="text" id="price" />
$('#price').keyup(function(){
$('#price').val($('#price').val().replace(',', '.'));
})演示:http://jsfiddle.net/2KRHh/1/
这将用.替换,。这是可以的,但我想用NULL替换所有不是数字的字符。如何使用正则表达式执行此操作?
发布于 2013-06-16 04:00:36
从可用性的角度来看,猜测用户可能想要或不想要的内容,然后尝试纠正这些错误是没有多大意义的。只需使用如下模式:
<input class="" type="text" id="price" pattern="\d+\.\d\d"/>现代浏览器将根据模式对输入字段进行验证,您也可以使用$(this).attr("pattern")对其进行验证。
现在,如果不匹配,只需提示用户更正他们的输入。
在它最简单的形式中,它可能看起来像following example。它只是在输入(,->)上执行一个简单的替换。(如果您使用模式"\d+[.,]\d\d",然后根据您的喜好对其进行更正,则甚至不需要这样做),然后尝试进行验证。如果失败,用户将无法提交,并被提示更正其输入。
发布于 2013-06-16 03:39:22
你可能想看看my jQuery iMask plugin,尽管你特别想要的是:
.replace( /.*?(\d+)(?:\.(\d{1,2}))?.*/, function( rx, dollars, cents ){
cents = +( cents || 0 );
return (+dollars + (cents/((cents<10)?10:100))).toFixed(2);
} );如果您只想剥离非数字:
.replace( /[^0-9.]/g, '' )https://stackoverflow.com/questions/17127217
复制相似问题