我如何要求密码为数字才能创建新用户?
这可能是一个愚蠢的问题,但我没有找到如何让密码仅为数字 [0-9]!另一个相关问题:我如何要求密码仅为数字 [1-9]?
我试过这个,但它没有用!
<input type="password" name="password" maxlength="30" type="number" value="<?php echo htmlentities($password); ?>" />
我如何要求密码为数字才能创建新用户?
这可能是一个愚蠢的问题,但我没有找到如何让密码仅为数字 [0-9]!另一个相关问题:我如何要求密码仅为数字 [1-9]?
我试过这个,但它没有用!
<input type="password" name="password" maxlength="30" type="number" value="<?php echo htmlentities($password); ?>" />
您可以像这样使用正则表达式
$pass = preg_replace( '/[^0-9]/', '', $password );
这只会取 0 到 9 之间的数值。对于 1 到 9,只需更改值。还有一个用于 php的is_numeric或intval函数
if(is_numeric($pass)){
$password = $pass;
} else {
//Error message
}
您的代码中有 2 个type
属性,我认为这不起作用。让它type
成为password
。
验证 javascript 或 php 中的用户输入,如果输入是数字,则仅保存到 darabase。
在javascript中使用函数isNaN
参考:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN
在php中使用is_numeric
使用 JavaScript 捕获按键 ( keyup
) 并丢弃不是数字的按键。基本上,您将输入的值input
取出,删除最后一个字符,然后将其放回原处。使用 jQuery,这实际上非常简单。
您可以使用服务器端检查,然后通知您的用户他们需要重新开始......但是如果您曾经遇到过这种情况,您就会知道糟糕的 UI 会造成什么后果。JavaScipt 是客户端是有原因的。
它应该是服务器端检查,否则很容易被前端操纵。
您可以使用正则表达式来操作输入或简单地通过以下方式检查它:
if (is_int($_POST['password'])) {
// continue
}
else {
// break
}
is_int
docs:http ://php.net/manual/en/function.is-int.php还有相关函数
function checkNumKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
在脚本标签中包含这个函数。并根据需要在 textBox 上调用它
例如
<input type="text" onkeypress="javascript:return checkNumKey(event);" />
如果您正在寻找客户端验证,您可以使用 jQuery
$(document).ready(function(){
$("#name_ajax").change(function(){
if($.isNumeric($("#name_ajax").val())){
return;
}
else {
alert ('not allowed');
}
}
})
name_ajax
文本字段的 id 在哪里。
不要忘记包含 jquery 库
除了服务器端检查(必须)和客户端 JavaScript 检查(有利于可用性)之外,您还可以使用 HTML5pattern
属性。一些浏览器支持它,并且在它们中,即使禁用 JavaScript,它也提供客户端检查。例子:
<input type="password" name="password" maxlength="30" pattern="\d+">
在这方面,MDN 上的信息input
已经过时。根据 HTML5 CR,该pattern
属性也允许用于 [ input type=password][2]
,并且现代浏览器(包括 IE 10)以这种方式支持它。