输入允许数字和单个逗号

时间:2017-02-21 22:19:29

标签: javascript jquery validation

我有一个输入字段,我想只允许数字和1个逗号。我怎么能让它只接受单个逗号?

$("#my-field").on("keyup", checkKey);

function checkKey() {
    this.value = this.value.replace(/[^0-9,]/g, "");
}

1 个答案:

答案 0 :(得分:6)

你可以这样做:



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;

<input>
&#13;
&#13;
&#13;

这将删除所有重复的逗号以及它们之间的所有内容。这不是问题,因为您一次只按一个键。

备注

这种阻止输入验证的方式是用户不友好的。为了使键盘失效,最好给事物上色或放置信息。

input事件通常对于检查input中的更改比keyup更有用,因为也可以通过鼠标操作和上下文菜单进行更改。