Как ограничить символы «♥ ♣» в текстовом поле - PullRequest
3 голосов
/ 08 сентября 2010

Как я могу ограничить '♥ ♣' как символы от сохранения в базе данных. Если эти символы появляются в текстовом поле имени, должно появиться сообщение об ошибке. Я использую рубин на рельсах.

Спасибо, Anubhaw

Ответы [ 2 ]

6 голосов
/ 08 сентября 2010

См. Пример использования только определенного набора символов (белый список), что для IMO лучше и безопаснее:

var allowed = /[a-ZA-Z0-9]/; // etc.

window.onload = function () {
    var input = document.getElementById("test");

    input.onkeypress = function () {
        // Cross-browser
        var evt = arguments[0] || event;
        var char = String.fromCharCode(evt.which || evt.keyCode);

        // Is the key allowed?
        if (!allowed.test(char)) {
            // Cancel the original event
            evt.cancelBubble = true;
            return false;
        }
    }
};

С: запретить ввод не текстовых символов в текстовом поле

В качестве альтернативы вы можете использовать регулярные выражения для удаления не ascii символов.

см. Здесь: Как удалить все символы, не входящие в ASCII, из строки в Ruby

1 голос
/ 08 сентября 2010

Вы хотите некоторый JavaScript, чтобы сообщить пользователям, когда они помещают такие символы в форму. Вам нужна подпрограмма проверки в вашем коде RoR, чтобы удостовериться, что в базу данных фактически помещены только приемлемые символы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...