代码之家  ›  专栏  ›  技术社区  ›  sscirrus

限制在文本字段中输入的字符

  •  2
  • sscirrus  · 技术社区  · 14 年前

    我有一个文本字段,用户可以在其中输入一个URL字符串,该字符串不能包含空格或非字母数字字符(如果这是一种准确的方式)。

    Rails中有没有一种方法可以限制对文本字段本身的输入,这样就可以避免使用/“:}{35;$^@这样的空格和字符?

    谢谢。


    2 回复  |  直到 14 年前
        1
  •  2
  •   enobrev    14 年前

    这里的问题是URL字符串可以有斜线(/)和哈希标记(#)。因此,要确保正确过滤字段的正确部分,正则表达式将非常复杂。但是对于纯字符过滤,可以使用简单的regex删除任何非字母数字字符。

    不确定任何特定于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>
    
        2
  •  1
  •   Nicolas Blanco    14 年前

    这是一个很好的方式来验证您的表单,而不必把JS放在您的表单上:-)。

    看看“pattern”HTML 5标记,它允许您根据Regexp验证字段。

    http://flowplayer.org/tools/validator/index.html