【发布时间】:2020-02-26 20:28:23
【问题描述】:
从 Angular 输入中反转一个数字。
这里是方法和属性:
reversedIntInput = "";
reverseInt(event: any) {
const inputString = (<HTMLInputElement>event.target).value;
const parsed = parseInt(inputString);
if (Number.isNaN(parsed) || inputString == "" || inputString === null) {
this.reversedIntInput = "Nice try but this is not a number.";
} else {
this.reversedIntInput = inputString
.split("")
.reverse()
.join("");
}
}
这里是html:
<label>Reverse an Integer</label>
<input type="text" class="form-control" (input)="reverseInt($event)">
<p>{{ reversedIntInput }}</p>
如果我在输入中输入“d”,它确实会显示“Nice try but this is not a number”。 如果我在输入中输入“45”,它确实会显示“54”。
但如果我输入“54ddd”,它只会将其反转为字符串,并在应该显示“Nice try but this is not a number”时显示“ddd45”。
这是为什么呢?我在控制台记录了inputString 和parsed,并且当输入了一个字母但解析后没有时,inputString 会继续更新。
【问题讨论】:
-
添加 keydown 事件,当被按下时在按下的键上取 ASCII 码,然后检查 asci 码是否 >= 48 &&
标签: javascript angular typescript