检查用户是否仅输入数字,PHP
Check if user enters numbers ONLY, PHP
我有这个 inupt 字段
<p style="font-size: 18px;">Total Bids: <input type="text" class="total_bids" name="total_bids" placeholder="No. of Bids"></p>
通过以下方式获取其价值:
var totalbids = document.getElementsByName('total_bids')[0].value;
并通过
获取PHP中的值
$total_bids = PSF::requestGetPOST('totalbids');
一切正常,但它应该只接受数字值,所以我试图检查用户是否只输入数字,我如何定义字母表范围以便我可以设置类似[=15的检查=]
if( $total_bids== 'alphabet range')
{
return json_encode(array('error' => 'Please enter a valid Number.'));
}
您可以使用 RegEx 和 \d
表达式。 \d
只匹配数字。
首先,您可以通过将其类型定义为 type="number"
.
来禁止此人在 <input../>
中输入数字以外的任何内容
显然,人们可以绕过它,因此您仍然需要在后端检查它,您需要使用像 is_numeric()
.
这样的函数
您可以通过is_numeric
查看
if(!is_numeric($total_bids))
{
return json_encode(array('error' => 'Please enter a valid Number.'));
}
此外,如果你想做任何特殊检查,你可以通过 preg_match
使用正则表达式,例如:
if(!preg_match('~^[\d\.]$~', $total_bids))
{
return json_encode(array('error' => 'Please enter a valid Number.'));
}
正则表达式更灵活,您可以添加自己的规则以通过正则表达式检查,但is_numeric检查速度比正则表达式检查快
根据您的输入,如果您只需要数字,请尝试 ctype_digit
:
$strings = array('1820.20', '10002', 'wsl!12');//input with quotes is preferable.
foreach ($strings as $testcase) {
if (ctype_digit($testcase)) {
echo "The string $testcase consists of all digits.\n";
} else {
echo "The string $testcase does not consist of all digits.\n";
}
}
if(preg_match ("/[^0-9]/", $total_bids)){
return json_encode(array('error' => 'Please enter a valid Number.'));
}
我有这个 inupt 字段
<p style="font-size: 18px;">Total Bids: <input type="text" class="total_bids" name="total_bids" placeholder="No. of Bids"></p>
通过以下方式获取其价值:
var totalbids = document.getElementsByName('total_bids')[0].value;
并通过
获取PHP中的值$total_bids = PSF::requestGetPOST('totalbids');
一切正常,但它应该只接受数字值,所以我试图检查用户是否只输入数字,我如何定义字母表范围以便我可以设置类似[=15的检查=]
if( $total_bids== 'alphabet range')
{
return json_encode(array('error' => 'Please enter a valid Number.'));
}
您可以使用 RegEx 和 \d
表达式。 \d
只匹配数字。
首先,您可以通过将其类型定义为 type="number"
.
<input../>
中输入数字以外的任何内容
显然,人们可以绕过它,因此您仍然需要在后端检查它,您需要使用像 is_numeric()
.
您可以通过is_numeric
if(!is_numeric($total_bids))
{
return json_encode(array('error' => 'Please enter a valid Number.'));
}
此外,如果你想做任何特殊检查,你可以通过 preg_match
使用正则表达式,例如:
if(!preg_match('~^[\d\.]$~', $total_bids))
{
return json_encode(array('error' => 'Please enter a valid Number.'));
}
正则表达式更灵活,您可以添加自己的规则以通过正则表达式检查,但is_numeric检查速度比正则表达式检查快
根据您的输入,如果您只需要数字,请尝试 ctype_digit
:
$strings = array('1820.20', '10002', 'wsl!12');//input with quotes is preferable.
foreach ($strings as $testcase) {
if (ctype_digit($testcase)) {
echo "The string $testcase consists of all digits.\n";
} else {
echo "The string $testcase does not consist of all digits.\n";
}
}
if(preg_match ("/[^0-9]/", $total_bids)){
return json_encode(array('error' => 'Please enter a valid Number.'));
}