Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Проблема с маской ввода (https://javascript.ru/forum/extjs/10394-problema-s-maskojj-vvoda.html)

DooMer 02.07.2010 12:14

Проблема с маской ввода
 
Доброго времени суток, есть такой код. Проблема возникает в том что не корректно работает маска ввода. Маска типа /[\-0-9]/ работает без проблем, но "-" можно вставить сколь угодно раз и в любое место. Решаемо ли это вообще ? или маска ввода не позволяет такого ?
for(var i=0;i<<?=$i?>;i++){
	new Ext.form.TextField({
		allowBlank:false,
		hideLabel:true,
		value:0,
		renderTo:"check_list_div_" + i,
		autoDestroy:true,
		maskRe:/\-{0,1}[0-9]{1,}/,//а вот здесь непозволяет вводить "-"
		regex:/^\-{0,1}[0-9]{1,}$/, //здесь все правильно, подсвечивает если неправильный формат
		anchor:'100%'
	}).render();
}

x-yuri 02.07.2010 15:03

maskRe:/^-?[0-9]{1,}$/?
p.s. хотя непонятно, почему maskRe:/\-{0,1}[0-9]{1,}/ не позволяет вводить минус

DooMer 02.07.2010 15:30

x-yuri,
спасибо, но тож минус не вводиться. Я так понял, что маска не полностью поддерживает рег експ. Наверно она только определяет списоксимволов которые могут вводиться и все (((

К слову оно игнорит {0,1} вообще

Kolyaj 02.07.2010 15:52

Цитата:

Сообщение от DooMer
Я так понял, что маска не полностью поддерживает рег експ.

Читаем мануал
Цитата:

maskRe : RegExp
An input mask regular expression that will be used to filter keystrokes that do not match (defaults to null)
Если до сих пор непонятно, смотрим код

//...
        var cc = String.fromCharCode(e.getCharCode());
//...
        if(!this.maskRe.test(cc)){
            e.stopEvent();
        }

DooMer 02.07.2010 16:05

Kolyaj,
Тоесть там только на список символов смотрит. С английским я дружу ) Спасибо ))))))


Часовой пояс GMT +3, время: 22:42.