Я НЕ ищу плагин, просто нужна простая функция jQuery с регулярным выражением. Я также НЕ заинтересован в решениях CSS или PHP / SSI.
Учитывая это, у меня есть следующий фрагмент кода, который в настоящее время не работает. Я хочу сохранить подобный формат селектора, синтаксис регулярных выражений также был протестирован индивидуально. Поэтому, пожалуйста, посмотрите на код и дайте мне знать, в чем проблема.
Кодовая ссылка: http://jsfiddle.net/TnpZY/1/
Текущий код:
$('input').live('keyup', function(e) {
var val = this.value;
var defaults = {
format: 'numeric',
uppercase: false,
lowercase: false,
capit: false,
nospace: false,
pattern: null
};
switch(defaults.format)
{
case 'text':
var pattern = new RegExp('[0-9]+', 'g');
val = val.replace(pattern, '');
break;
case 'alpha':
var pattern = new RegExp('[^a-zA-Z]+', 'g');
val = val.replace(pattern, '');
break;
case 'number':
case 'numeric':
var pattern = new RegExp('[^0-9]+', 'g');
val = val.replace(pattern, '');
break;
case 'alphanumeric':
var pattern = new RegExp('[^0-9a-zA-Z]+', 'g');
val = val.replace(pattern, '');
break;
case 'custom':
var pattern = new RegExp(defaults.pattern, 'g');
val = val.replace(pattern, '');
break;
case 'all':
default:
if(typeof defaults.format == 'function')
var val = defaults.format(val);
break;
}
if(defaults.nospace)
{
var pattern = new RegExp('[ ]+', 'g');
val = val.replace(pattern, '');
}
if(defaults.uppercase)
val = val.toUpperCase();
if(defaults.lowercase)
val = val.toLowerCase();
if(defaults.capit)
String.prototype.capitalizet = function(){ return this.charAt(0).toUpperCase() + this.slice(1); }
val = val.capitalizet();
if(val != this.value)
this.value = val;
});