Ton*_*niq 1 javascript validation jquery
我有一个输入字段,我只想允许数字和1个逗号.我怎么能让它只接受单个逗号?
$("#my-field").on("keyup", checkKey);
function checkKey() {
this.value = this.value.replace(/[^0-9,]/g, "");
}
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
function checkKey() {
var clean = this.value.replace(/[^0-9,]/g, "")
.replace(/(,.*?),(.*,)?/, "$1");
// don't move cursor to end if no change
if (clean !== this.value) this.value = clean;
}
// demo
document.querySelector('input').oninput = checkKey;Run Code Online (Sandbox Code Playgroud)
<input>Run Code Online (Sandbox Code Playgroud)
这将删除所有重复的逗号,以及它们之间的所有内容.这不是问题,因为您一次按一个键.
这种阻止输入验证的方式是用户不友好的.为了使键盘失效,最好给事物上色或放置信息.
该input事件往往是检查中的变化更为有用input比keyup,因为更改还可以通过鼠标操作和上下文菜单中进行.