У меня есть это 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');
Все работает нормально, но предполагается, что оно принимает значение только для числа, поэтому я пытаюсь проверить, вводит ли пользователь только число, как я могу определить диапазон алфавита, чтобы я мог установить чек, например
if( $total_bids== 'alphabet range')
{
return json_encode(array('error' => 'Please enter a valid Number.'));
}
Прежде всего, вы можете запретить человеку вводить что-либо, кроме чисел, в <input../>
, определяя его как type="number"
.
Очевидно, что люди могут обойти его, поэтому вам все равно нужно проверить его на бэкэнд для этого, вам нужно будет использовать функцию is_numeric()
.
Вы можете использовать RegEx и выражение \d
. \d
соответствует только номерам.
if(preg_match ("/[^0-9]/", $total_bids)){
return json_encode(array('error' => 'Please enter a valid Number.'));
}
Вы можете проверить is_numeric
if(!is_numeric($total_bids))
{
return json_encode(array('error' => 'Please enter a valid Number.'));
}
Также, если вы хотите выполнить какие-либо специальные проверки, вы можете использовать regexp by preg_match
, например:
if(!preg_match('~^[\d\.]$~', $total_bids))
{
return json_encode(array('error' => 'Please enter a valid Number.'));
}
Regexp более гибкий, вы можете добавить свои собственные правила для проверки по регулярному выражению, но 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";
}
}
см. здесь: http://php.net/ctype_digit
if (is_numeric($numberOrLetters)) { ... }
??? php.net документы