只允许在html textinput中输入某些字符

bab*_*113 17 javascript character limit textfield

我只需要允许用户在textinput中输入以下字符:

A-ZA-Z0-9 @#$%^*_!|

<form action="http://www.cknuckles.com/cgi/echo.cgi" method="get" name="logOn">
  User Name:<br />
  <input type="text" name="userName" size="25" /><br />
  Password:<br />
  <input type="password" name="pw" size="25" /><br />
  <input type="submit" value="Log In" onClick="validate()"/> 
</form>
Run Code Online (Sandbox Code Playgroud)

上面是我的HTML,下面是我试图用来验证它的JavaScript - 但它不起作用 - 任何线索.

<script language="javascript">
   document.logOn.onsubmit=validate;

   function validate(){

var name=document.logOn.pw.value;
    if(!name = "[a-zA-Z0-9!@#$%^*_|]"){              
alert("Your Password Cant Have any thing other than a-zA-Z0-9!@#$%^*_| - Play It Straight!");
    return false;
}               

    return true;
}

</script>
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我仍然可以把字符放在">","<"和"{"等中.

有什么想法吗?

Ank*_*dse 38

您可以在输入文本中尝试如下:

<input type="text" pattern="[a-zA-Z0-9!@#$%^*_|]{6,25}" />
Run Code Online (Sandbox Code Playgroud)

所以代码更改如下所示:

    <form action="#" method="get">
       User Name:<br />
       <input type="text" pattern="[a-zA-Z0-9!@#$%^*_|]{6,25}" /><br />
       Password:<br />
       <input type="password" /><br />
       <input type="submit" value="Log In" /> 
   </form>
Run Code Online (Sandbox Code Playgroud)

这将在不使用JavaScript的情况下完成.pattern可以用来代替.

它比表单验证更有效.

  • nope ..我仍然可以在文本字段中放置'>''<''{''}':( (2认同)
  • @ bull-T当用户点击登录按钮时,输入文本不会通知你"请匹配请求的格式"`希望你明白这个方法.试试吧.它会工作. (2认同)
  • @asterisk 黑客还可以跟踪正在发送的消息,并使用该信息生成自己对该位置的调用,因此前端做什么无关紧要,可以跳过它。API 应始终对其进行验证。 (2认同)

小智 5

用这个

<script language="javascript">
document.logOn.onsubmit=validate;

function validate(){

var name=document.logOn.pw.value;
var reg=/[^a-zA-Z0-9\!\@\#\$\%\^\*\_\|]+/;
if(reg.test(name)){              
alert("Your Password Cant Have any thing other than a-zA-Z0-9!@#$%^*_| - Play It    Straight!");
return false;
}               

return true;
}

</script>
Run Code Online (Sandbox Code Playgroud)

  • 无需Javascript进行表单验证。 (3认同)