限制字符在文本框中键入

8 html

我们如何限制字符在文本框中键入.

Ben*_*owe 17

你可以通过javascript(所以如果javascript关闭,你将无法限制它)

<input type="text" onkeyup="this.value = this.value.replace(/[^a-z]/, '')" />
Run Code Online (Sandbox Code Playgroud)

这会将其限制为只有az字符.检查正则表达式,看看你能做些什么

  • 请记住,此代码仅在客户端执行.服务器脚本必须准备好处理**任何**输入并拒绝无效字符. (7认同)
  • 这需要正则表达式的全局标志.这是因为一个人可以按住一个键并让它在发布之前提交许多按键事件(并添加许多数字),此时只有一个按键事件发生...意味着只有一个可能很多不需要的字符会因为没有全局标志而被删除,它每次调用仅替换1. (2认同)

Use*_*034 7

如果您有文本框,则必须处理该onkeypress事件

<input type='text' onkeypress='keypresshandler(event)' />
Run Code Online (Sandbox Code Playgroud)

您可以使用以下功能来限制用户

    function keypresshandler(event)
    {
         var charCode = event.keyCode;
         //Non-numeric character range
         if (charCode > 31 && (charCode < 48 || charCode > 57))
         return false;
    }
Run Code Online (Sandbox Code Playgroud)

  • 我尝试了这种方法,发现您需要使用 onkeypress = 'return keypresshandler(event)' 才能使其工作。 (3认同)

Joc*_*per 6

尽管仍然可能,但是使用HTML5并不需要真正使用基于JavaScript的解决方案来满足这一要求。

<input type="text" name="text" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$"> 将根据该RegExp模式限制允许的字符(在这种情况下:有效的电子邮件地址)。

title当用户尝试提交不符合要求的数据时,该属性将用作警告/通知。

<form action="/add_country.php">
  Country code: <input type="text" name="country_code" pattern="[A-Za-z]{3}" title="Three letter country code">
  <input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参见HTML input元素上文档。但是,并非所有浏览器都同样支持它(例如Safari)。

  • 这不会限制您可以输入的字符,它会在提交后验证内容。 (3认同)