Проблема в том, что строки URL могут иметь косую черту (/) и метки хеша (#). Таким образом, ваше регулярное выражение будет довольно сложным, чтобы обеспечить правильную фильтрацию правой части поля. Но для фильтрации простых символов вы можете использовать простое регулярное выражение для удаления любых не буквенно-цифровых символов.
Не уверен ни в чём специфичном для ruby, но в прямом javascript:
<html>
<body>
<form>
<input type="text" name="whatever" id="form-field" value="" />
</form>
</body>
<script type="text/javascript">
var oFormField = document.getElementById('form-field');
oFormField.onkeyup = function() {
oFormField.value = oFormField.value.replace(/[^a-zA-Z0-9]/, '');
}
</script>
</html>