javascript - 在 JavaScript 中,如何防止在表单字段中输入数字作为第一个字符?

标签 javascript regex validation

我使用了 javascript 来防止在字段中输入特定字符。下面的函数可以防止输入数字。它还会在输入时检查每个字符,如果是数字则阻止输入。

function LettersOnly(e) {

    var key = window.event ? e.keyCode : e.which;

    var keychar = String.fromCharCode(key);

    var reg = new RegExp("[A-Za-z + ']");

    return reg.test(keychar);

}

我想做类似的事情,阻止用户输入数字,但仅限于它是第一个字符。我该怎么做?上面的代码是否正确?为了实现这一目标,我的正则表达式应该是什么样子?

预先感谢您的帮助!

最佳答案

正如我在评论中所说,很难阻止输入字段的所有操作方式(拖/放、粘贴、剪切、删除),因此您最终需要在使用该字段之前验证该字段.

也就是说,如果您想阻止在字段的第一个字符中输入数字,您可以使用以下命令:

document.getElementById("test").addEventListener("keypress", function(e) {
    var key = e.which || e.keyCode;
    if (this.selectionStart === 0) {
        if (key > 48 && key < 57) {
            e.preventDefault();
        }
    }
});

工作演示:http://jsfiddle.net/jfriend00/mnm4bta1/

关于javascript - 在 JavaScript 中,如何防止在表单字段中输入数字作为第一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25253892/

相关文章:

javascript - 在 opener 中调用 JavaScript 函数

javascript - 'jekyll' 会干扰 jquery.cookie 吗?

javascript - Flask 应用程序将数据发布到错误的资源?

javascript - w3c 验证器和 for (var i=0;i<lista.length;i++)

python - 如何验证 Python 脚本的语法?

php - Laravel 5.2 验证检查值是否不等于变量

javascript - 如何禁用某些下拉菜单,直到选择第一个/主下拉菜单?

mysql - 使用正则表达式搜索并替换 Mysql 中的 JSON

java - 使用正则表达式 : matching nested brackets 替换 java 函数

c# - 正则表达式获取捕获组直到到达另一个部分