[英]javascript regex to disallow all special characters
这是一个开始的小提琴 - http://jsfiddle.net/zuVpx/1/
Javascript代码:
<script>
function validate(e) {
var regex = new RegExp("[a-zA-Z0-9]");
var key = e.keyCode || e.which;
key = String.fromCharCode(key);
if(!regex.test(key)) {
e.returnValue = false;
if(e.preventDefault) {
e.preventDefault();
}
}
}
</script>
HTML代码:
<input type="text" onkeypress="validate(event)" />
我只想要字符和数字。 退格键、删除键、大写锁定键和箭头键等键应该可以工作。
提前致谢。
在输入中添加一个id
(例如“验证”)并使用:
document.querySelector('#validate').onkeypress = validate;
function validate(e) {
e = e || event;
return /[a-z0-9]/i.test(
String.fromCharCode(e.charCode || e.keyCode)
) || !e.charCode && e.keyCode < 48;
}
尝试
/[-!$%^&*()_+|~=`\\#{}\[\]:";'<>?,.\/]/.test(your_variable)
如果匹配,则返回 true。
只使用一个额外的 if 子句怎么样? 就像是...
key.charCodeAt(0) > 32
所以...
function validate(e) {
var regex = new RegExp("[a-zA-Z0-9]");
var key = e.keyCode || e.which;
key = String.fromCharCode(key);
if(!regex.test(key) && key.charCodeAt(0) > 32) {
e.returnValue = false;
if(e.preventDefault) {
e.preventDefault();
}
}
}
要克服,例如左箭头键产生相同的问题key
值作为%
键,你可以使用
function validate(e) {
e = e || window.event;
var bad = /[^\sa-z\d]/i,
key = String.fromCharCode( e.keyCode || e.which );
if ( e.which !== 0 && e.charCode !== 0 && bad.test(key) ) {
e.returnValue = false;
if ( e.preventDefault ) {
e.preventDefault();
}
}
}
任何可打印的字符都应该产生一个非零的e.which
和e.charCode
值。
请参阅JavaScript 疯狂:键盘事件。
以上假设空格有效 - 如果不是,只需从否定字符类中删除\\s
。
这对我有用。 防止用户输入特殊字符(退格等除外)
PatternValidation(e){
if(!e.key.match(/^[a-zA-Z0-9]*$/))
{
e.preventDefault();
}
},
这是通过将 html 属性与 keydown 事件处理程序绑定来触发的
<input type="text" onkeydown="PatternValidation($event)">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.