[eluser]skunkbad[/eluser]
I think you might like this script that I wrote for client side limiting of chars. You can use it a few ways. I am usually using it with regex:
Code:
<!DOCTYPE html>
<html>
<head>
<title>Character Input Limiter</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
[removed][removed]
</head>
<body>
<br>
<form id="myform" action="">
<label for="element1">Alpha only</label>
<input id="element1" name="mytext1" type="text">
<br />
<label for="element2">Alpha numeric + some extras</label>
<input id="element2" name="mytext2" type="text">
<br />
<label for="element3">Numeric only</label>
<input id="element3" name="mytext3" type="text">
<br />
<label for="element4">Numeric + some extras</label>
<input id="element4" name="mytext4" type="text">
<br />
<label for="element5">Direct regular expression</label>
<input id="element5" name="mytext4" type="text">
</form>
[removed]
/*
DISALLOWED INPUT CHARACTERS
*/
(function($){
$.fn.disableChars = function(a) {
/* bring in any modifications to allow */
a = $.extend({
allow: '',
limit_to: '',
direct_regex: null
}, a);
/* create the character base alpha, numeric, or alphanumeric (default) */
if(a.limit_to == 'alpha'){
charbase = 'a-z';
}else if(a.limit_to == 'numeric'){
charbase = '0-9';
}else{
charbase = 'a-z0-9';
}
/* convert allow string to regex */
allowed = a.allow.split('');
for ( i=0; i<allowed.length; i++){
allowed[i] = "\\" + allowed[i];
}
a.allow = allowed.join('');
/* combine character base with allowed chars and create regex object */
if(a.direct_regex == null){
var regex = new RegExp('[^' + charbase + a.allow + ']', 'ig');
}else{
var regex = a.direct_regex;
}
/* monitor events on designated elements */
$(this)
.bind('keyup blur', function() {
if (this.value.search(regex) != '-1') {
this.value = this.value.replace(regex, '');
}
})
.bind('contextmenu',function () {return false});
}
})(jQuery);
$("#element1").disableChars({limit_to:"alpha"});
$("#element2").disableChars({allow:".,:-() "});
$("#element3").disableChars({limit_to:"numeric"});
$("#element4").disableChars({limit_to:"numeric",allow:"-()."});
$("#element5").disableChars({direct_regex:/[^-A-Z0-9~!#&*()_+:\'",.?]/ig});
[removed]
</body>
</html>