Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将文本输入限制为数字、小写字母和某些符号的最佳方式是什么?_Javascript - Fatal编程技术网

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

Javascript 将文本输入限制为数字、小写字母和某些符号的最佳方式是什么?,javascript,Javascript,如果不使用jQuery,将文本框的文本输入限制为数字、小写字母和给定的一组符号(例如-和)的最佳方法是什么?如果用户输入大写字母,我希望它自动转换为小写字母,如果用户输入的符号不在给定集合内,我希望能够立即显示验证错误(显示文本框附近或下方的某些元素) 没有jQuery的帮助,最干净的跨浏览器方式是什么?将以下内容附加到您的elements onkeyup事件中 function onkeyup() { var el = document.getElementById("id"); /

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


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

将以下内容附加到您的elements 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
    }
}

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

为什么不使用jQuery?你是否还想放弃其他JS框架,如Mootols等?我确实想放弃其他JavaScript框架;我现在只是在寻找一个“纯”的解决方案。如果你打算用多个输入来实现这一点,那么创建一个插件是个好主意,因为已经有了一个插件。这叫做Jquery验证。但是OP不想使用框架。这个解决方案不阻止用户输入非法字符,它只在输入无效时提醒用户。是否有办法删除非法字符,使其无法在文本框中键入?此外,这是否适用于粘贴到字段中这样的事情?@Adam,我认为你的问题是想显示验证错误。为了防止输入字符,您必须使用keydown事件并返回false,或者在显示验证错误的同一位置执行regex替换。请参阅我的编辑。