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