Показать сообщение отдельно
  #16 (permalink)  
Старый 15.09.2008, 18:52
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Потесть в разных браузерах, о багах пиши сюда...
function setMask(I,M){
	M = M.split('').join('|');
	if (/z/.test(M)) M = M.replace(/z/g,'[a-z]');
	else if (/я/.test(M)) M = M.replace(/я/g,'[а-яё]');
	else if (/a/.test(M)) M = M.replace(/a/g,'[a-zа-яё]');
	else if (/\*/.test(M)) M = M.replace(/\*/g,'[a-zа-яё0-9]');
	M = M.replace(/\(/g,'\\(').replace(/\)/g,'\\)').replace(/\//g,'\\/').replace(/9/g,'\\d').replace(/\./g,'\\.');

	var r = new RegExp(M,'i');
	
	function P(c,n){
		if(c<38||c==39||(c==45&&n)||(c==46&&!n)||r.test(String.fromCharCode(c)))return true;
		return false
	}
	function V(){
		setTimeout(function(k){
			var a=I.value.split(''),x=[];
			for(var i=0;i<a.length;i++)if(r.test(a[i]))x.push(a[i]);
			I.value=x.join('')
		},0)
	}
	
	I = typeof I=='string' ? document.getElementById(I) : I;
	
	I.onkeypress = function(e){
		e=e||event;
		return P(e.keyCode||e.charCode,e.charCode);
	}
	
	if (document.all&&!window.opera) I.onpaste=V;
	else I.addEventListener('input',V,false)
}
Ответить с цитированием