在Javascript中输入的解析量

时间:2015-09-21 09:41:06

标签: javascript angularjs

我的表单中有一个输入,用户必须写一笔付款金额。问题是用户有不同的方法,它可能是1,350.55(这是他正确的),但它可能是这样的1.350,55或1.350。那么,有没有办法将金额解析为我的正确形式?

谢谢!

3 个答案:

答案 0 :(得分:2)

你想要解析输入,对吗? 为什么不尝试将输入作为货币字段? 然后通过角度将其解析为容器,以便客户可以看到该值,然后使用角度过滤值。

这是一个小提琴: http://jsfiddle.net/lacrioque/vouLmrac/

<p><label for='numberinput'>Your Price here: </label><input type='number' name='numberinput' ng-model='numbertofilter' placeholder="1,350.99"/></p>
<p>Price: <span>{{numbertofilter | currency }}</span></p>

答案 1 :(得分:0)

使用ng-pattern

将ng-pattern附加到您的输入并为其提供所需模式的RegEx。这样人们只能以正确的方式输入,你可以避免不良数据。

请查看this link以获取有关输入格式的更多信息。

实施例

在这里,我有一个例子,对于9999999之前的任何整数,如果您了解RegEx

,这非常简单
<input type="number" ng-model="price" name="price_field" 
       ng-pattern="/^[0-9]{1,7}$/" required>

注意

您可以查看RegEx here

答案 2 :(得分:0)

如果您不了解格式,您将如何解析13.995?它会是&#34; 13955&#34; (整数)还是浮点数?

您可能希望屏蔽格式并完全避免使用千位分隔符。并告诉用户不要使用它们。