Проблемы с динамическим построением RegExp в Javascript

Этот метод предназначен для предотвращения ввода пользователями чего-либо, кроме цифр и «разрешенных символов». Разрешенные символы передаются как параметр allowedchars .

Пока что метод предотвращает ввод чисел, но разрешенные символы не работают (попытка передать «-» (дефис) и «.» (Точка)). Поэтому я предполагаю, что моя конструкция динамического регулярного выражения неверна. Помогите?

Заранее спасибо!

numValidate : function (evt, allowedchars) {
    var theEvent, key, regex,
    addToRegex = allowedchars;

    theEvent = evt || window.event;
    key = theEvent.keyCode || theEvent.which;
        key = String.fromCharCode(key);
        var regex = new RegExp('/^[0-9' + addToRegex + ']$/');
        if (!regex.test(key)) {
            theEvent.returnValue = false;
            if (theEvent.preventDefault) {
                theEvent.preventDefault();
            }
        }
}

(пс. Решения jQuery тоже хороши)

1
задан Kyle 19 September 2010 в 07:31
поделиться