如何在文本框中限制'♥♣'字符

时间:2010-09-08 10:02:20

标签: mysql html ruby-on-rails

如何将'♥♣'限制为保存到数据库中的字符。如果这些字符出现在名称文本字段中,则应抛出错误消息。 我在铁轨上使用红宝石。

谢谢, Anubhaw

2 个答案:

答案 0 :(得分:6)

请参阅此示例,仅提供一组特定字符(白名单),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;
        }
    }
};

自: prevent typing non ascii characters in a textbox

或者,您可以使用正则表达式去除非ascii字符。

见这里:How to remove all non - ASCII characters from a string in Ruby

答案 1 :(得分:1)

想要一些javascript来告诉用户他们在表单中放置这些字符的时间。您需要在您的RoR代码中验证例程,以确保只有可接受的字符实际放在数据库中。