使用模式属性HTML不检查长度的代码
试图让程序要求最小长度为8,最大长度为30但它不起作用,有人可以让我朝着正确的方向请谢谢! (9号线)使用模式属性HTML不检查长度的代码
<?php ob_start(); ?>
<html>
<head>
<title>Teacher Registeration</title>
</head>
<body>
<form method='POST' action='TeacherRegisterCheck.php'>
Email:<input type="email" id= "Email" name="teacherEmail" required /><br><br>
Password:<input type="password" pattern=".{8,30}" id= "Password" name="teacherPassword" required title=" 8 to 30 characters" /><br><br>
First Name:<input type="text" id= "First_Name" name="teacherfName" required /><br><br>
Last Name:<input type="text" id= "Last_Name" name="teacherlName" required /><br><br>
<label for="Title"> Title: </label> <select name="Title">
<option selected="" value= "Default"> (Select A Title) </option>
<option value= "Mr">Mr.</option>
<option value= "Mrs">Mrs.</option>
<option value= "Miss">Miss.</option>
<option value= "Ms">Ms.</option>
<option value= "Dr">Dr.</option>
<option value= "Master">Master.</option> </select> </br></br>
<button type="submit"> Enter </button>
</form>
</body>
</html>
<?php
我碰到这个问题,你不能使用pattern
,因为目前尚不具备对全跨浏览器支持一些iOS safari
和Android browsers
可能无法正常工作。我试图找到一种解决方法,但我最终确定最安全的解决方案是通过Javascript
来检查客户端,当然还有服务器端通过PHP
进行检查。
我试过使用javascript,但我有一个错误,并认为需要和模式会更容易。 –
当然,它会更容易,但最终的目标是要安全... :) 请记住,如果你要在移动浏览器中使用它,不要依赖HMTL5这些指令。对于某些iOS Safari版本,所需的取消选项也不起作用。因此,再次使用JS和PHP检查所需的字段。 – AlexCode
这很有趣。根据我的理解,[.]
应该匹配任何非换行符,但由于某些原因,此处未能输入密码。我建议你更清楚地说明你的搭配。例如,您可以匹配非空白字符(下面的示例),但如果您计划在密码中允许空格,这将无济于事。在这种情况下,您只需要在表达式中使用更广泛的允许字符列表/模式。
所有这一切说,从来没有依靠单独的前端验证。总是进行服务器端验证以及代替这一点。
<form method='POST' action='google.com'>
Password:
<input type="password" pattern="[^\s]{8,30}" id= "Password" name="teacherPassword" required title=" 8 to 30 characters" /><br><br>
<button type="submit"> Enter </button>
</form>
我试过你的改动,但它没有帮助。不管怎么说,还是要谢谢你!另外我想知道[^ \ s]做什么,因为我还不熟悉HTML和PHP。 –
有趣。你是否运行了该代码段?它在那里工作。也许你的代码中还有其他元素发挥作用。既然你问[^ \ s]匹配任何非空白字符。 https://regex101.com/r/yq0O3E/1 –
什么是你看到的行为?你使用什么浏览器和版本? – hoffm
适用于FireFox 57.可能是浏览器特定的。 http://jsbin.com/pupuxoqome/edit?html,console,output – bassxzero
它不检查只是去下一个PHP文件,我使用谷歌浏览器61.0.3163.100 –