首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以jQuery表示价格的正则表达式

以jQuery表示价格的正则表达式
EN

Stack Overflow用户
提问于 2013-06-16 03:36:49
回答 2查看 2.2K关注 0票数 0
代码语言:javascript
复制
<input type="text" id="price" />

$('#price').keyup(function(){
        $('#price').val($('#price').val().replace(',', '.'));
})

演示:http://jsfiddle.net/2KRHh/1/

这将用.替换,。这是可以的,但我想用NULL替换所有不是数字的字符。如何使用正则表达式执行此操作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-16 04:00:36

从可用性的角度来看,猜测用户可能想要或不想要的内容,然后尝试纠正这些错误是没有多大意义的。只需使用如下模式:

代码语言:javascript
复制
<input class="" type="text" id="price" pattern="\d+\.\d\d"/>

现代浏览器将根据模式对输入字段进行验证,您也可以使用$(this).attr("pattern")对其进行验证。

现在,如果不匹配,只需提示用户更正他们的输入。

在它最简单的形式中,它可能看起来像following example。它只是在输入(,->)上执行一个简单的替换。(如果您使用模式"\d+[.,]\d\d",然后根据您的喜好对其进行更正,则甚至不需要这样做),然后尝试进行验证。如果失败,用户将无法提交,并被提示更正其输入。

票数 3
EN

Stack Overflow用户

发布于 2013-06-16 03:39:22

你可能想看看my jQuery iMask plugin,尽管你特别想要的是:

代码语言:javascript
复制
.replace( /.*?(\d+)(?:\.(\d{1,2}))?.*/, function( rx, dollars, cents ){
    cents = +( cents || 0 );
    return (+dollars + (cents/((cents<10)?10:100))).toFixed(2);
} );

如果您只想剥离非数字:

代码语言:javascript
复制
.replace( /[^0-9.]/g, '' )
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17127217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档