我使用Angular8,并且希望防止用户在Input元素中输入连续的“ 0”。
如果用户输入“ 00”,我希望它显示为“ 0”,如果用户输入“ 01”,我想删除字符串中的第一个“ 0” =>它应该变成“ 1”。
我更改了ngModelChange()中的值,我的问题是:ngModel确实更改了。但输入元素仍显示旧值。
,我有一个模板: Check this link
它只是行不通, 谁能告诉我解决方案?
答案 0 :(得分:1)
如果仅期望整数(或者不介意四舍五入),则可以使用Math.floor()。请注意,此won't work处于严格模式。
let test = Math.floor(00);
let test2 = Math.floor(01);
console.log(test, test2);
所以这很有趣。 Javascript将0123视为binary literal。事实证明,用parseInt强制base10是可行的方法。请注意,您必须要确保要解析的字符串才能正常工作。
let test = Math.floor(00); // 0
let test2 = Math.floor(01); // 1
let test3 = Math.floor(0123); // 83
let test4 = parseInt(0123); // 83
let test5 = parseInt(0123, 10); // 83
let test6 = parseInt('0123', 10); // 123
console.log(test, test2, test3, test4, test5, test6);