2017-08-10 123 views
0

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

我不希望允许

  • $
  • 或第二 ''

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

1 | 1.12 | 22.22 | 123 | 1234.44 | .55 

但这些不会

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

我写这个正则表达式语句,我认为这是否

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

我写了我认为会给我f的javascript形状值。但是,它抛出一个错误

$('#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; 
     } 

    }); 

未捕获的SyntaxError:无效的或意外的标记。

就这样,很明显,如果用户输入无效字符代码应该触发并消除问题。所以如果用户输入12.12。它应该附加12.12到输入字段。

回答

1

你意外的标记是

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

正则表达式与

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

开始你可能会想尝试你的问题string.match(正则表达式)。 JavaScript String match() Method 如果您的文本不匹配只是剪下字符串的最后一个字符