将文本输入条目限制为数字,小写字母和某些符号的最佳方法是什么?

时间:2010-03-24 21:52:59

标签: javascript

不使用jQuery,将文本框的文本输入限制为数字,小写字母和一组给定符号(例如-_)的最佳方法是什么?如果用户输入一个大写字母,我希望它自动转换为小写字母,如果用户输入的符号不在给定的集合中,我希望能够立即显示验证错误(显示一些元素)在文本框旁边或下面)。

没有jQuery的帮助,最干净的跨浏览器方式是什么?

1 个答案:

答案 0 :(得分:1)

将以下内容附加到你的元素onkeyup事件。

function onkeyup() 
{
    var el = document.getElementById("id"); // or however you want to get it

    el.value = el.value.toLowerCase(); // covert to lower case

    if (el.value.match(/[^-\d\w]/)) // check for illegal characters
    {
        // show validation error
        ...
        // remove invalid characters
        el.value = el.value.replace(/[^-\d\w]/g, "");
    }
    else
    {
        // hide validation error
    }
}

正则表达式匹配任何不是数字,字母,连字符或下划线的字符。