我有一个输入字段,我想格式化,所以它只允许货币,但是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 附加到输入字段。
答案 0 :(得分:1)
您的意外令牌位于
中replace(\d{0,}(\.\d{1,2}), "")
正则表达式以
开头/\d{0,}(\.\d{1,2})/g
你可能想尝试string.match(regexp)来解决你的问题。 JavaScript String match() Method 如果你的文字不匹配,只需剪掉字符串的最后一个字符