javascript - 在输入类型编号的三个字符后添加破折号
问题描述
在我的 Angular 项目中,我输入了类型号,我需要在三个字符后添加一个破折号。如果添加输入类型编号对我不起作用如果添加输入类型文本它工作正常。
<input type="number" id="bank-code" (keyup)="onKey($event.target.value)" [value]='value' maxlength="7" required />
onKey(event){
var ele = event.split('-').join('');
if(ele.length > 0){
ele = ele.match(new RegExp('.{1,3}', 'g')).join("-");
}
this.value = ele;
}
解决方案
输入类型号不允许使用非数字字符(因为它是 type=number)。请注意,您可以输入e
字符 - 这是因为它e
是一个有效数字。
尝试使用tel
带有pattern
属性的输入类型,例如:
<input id='phone-num' type='tel' pattern="[0-9\-]+">
推荐阅读
- r - Sparklyr 配置导致 java.lang.OutOfMemoryError
- c++ - QT:QLabels 不尊重边界
- java - java中的google-api-client依赖项不起作用
- linux - 检测 /dev/tty 是否可用和功能的跨平台方法
- business-process-management - Appian RPA 进程未运行
- python - 如何使用 pandas 将我的 INT 值从 int32 设置为 int64
- c# - System.Diagnostics.EventLog 不包含正确的消息
- r - 使用 R 根据条件随机播放数据帧中的行
- julia - MethodError:无法将 Array{Float64,1} 类型的对象“转换”为 SentinelArrays.ChainedVector{Float64,Array{Float64,1}} 类型的对象
- c# - Azure EventHubs 抛出异常:端点的至少一个接收器是使用 '0' 的纪元创建的,因此不允许使用非纪元接收器