如何将'♥♣'限制为保存到数据库中的字符。如果这些字符出现在名称文本字段中,则应抛出错误消息。 我在铁轨上使用红宝石。
谢谢, Anubhaw
答案 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代码中验证例程,以确保只有可接受的字符实际放在数据库中。