代码之家  ›  专栏  ›  技术社区  ›  Adam Maras

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

  •  0
  • Adam Maras  · 技术社区  · 16 年前

    如果不使用jquery,将文本框的文本输入限制为数字、小写字母和给定的一组符号(例如 - _ )?如果用户输入大写字母,我希望它自动转换为小写字母,如果用户输入的符号不在给定集合内,我希望能够立即显示验证错误(显示文本框附近或下方的某些元素)。

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

    1 回复  |  直到 16 年前
        1
  •  1
  •   Joel    16 年前

    将以下内容附加到元素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
        }
    }
    

    regex匹配任何不是数字、字母、连字符或下划线的字符。