不使用jQuery,将文本框的文本输入限制为数字,小写字母和一组给定符号(例如-
和_
)的最佳方法是什么?如果用户输入一个大写字母,我希望它自动转换为小写字母,如果用户输入的符号不在给定的集合中,我希望能够立即显示验证错误(显示一些元素)在文本框旁边或下面)。
没有jQuery的帮助,最干净的跨浏览器方式是什么?
答案 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
}
}
正则表达式匹配任何不是数字,字母,连字符或下划线的字符。