如何格式化用户输入以允许xx.xx格式

时间:2017-08-10 14:05:07

标签: javascript

我有一个输入字段,我想格式化,所以它只允许货币,但是xx.xx或xx格式。

我不想允许

  • $
  • 或者第二个'。'

所以这些例子是可以接受的

$1, | 1.11.11 | .11.11 | , | 1,000

但这些不是

\d{0,}(\.\d{1,2})? 

我已经写了这个正则表达式声明,我认为这样做

   $('#Overlay').on('keyup', '#Amount', function(event) {
       var val = $('#Amount').val();

        var replaceVal = this.value.replace(\d{0,}(\.\d{1,2}), '');
        if(this.value != replaceVal){
          this.value = replaceVal;
        }

   });  

我已经编写了我认为会给我格式化值的javascript。但它会引发错误

{{1}}

未捕获的SyntaxError:无效或意外的令牌。

很明显,如果用户输入无效字符,代码应该触发并删除问题。因此,如果用户输入 12.12。,则应将 12.12 附加到输入字段。

1 个答案:

答案 0 :(得分:1)

您的意外令牌位于

replace(\d{0,}(\.\d{1,2}), "")

正则表达式以

开头
/\d{0,}(\.\d{1,2})/g

你可能想尝试string.match(regexp)来解决你的问题。 JavaScript String match() Method 如果你的文字不匹配,只需剪掉字符串的最后一个字符