проверка только выбранных символов в строке php (проверка номера телефона) - PullRequest
1 голос
/ 01 февраля 2011

У меня есть строка, содержащая буквенно-цифровые символы. Сценарий должен возвращать (echo) «true», если строка содержит только 0-9, -, + или слово NA (NA должен проверяться только в том случае, если он не содержит других символов и должен выводить false, если строка содержит любой другой символ наряду с «NA»). Сценарий должен отображать «false», если строка содержит любые другие символы, кроме указанных символов. Как я могу сделать это возможным ??

Заранее спасибо ..:)

blasteralfred

Ответы [ 3 ]

3 голосов
/ 01 февраля 2011
if(preg_match('/^(NA|[0-9+-]+)$/',$str)) {
        echo "true\n";
} else {
        echo "false\n";
}
0 голосов
/ 01 февраля 2011
$check1 = preg_match('/^[0-9]{1,}$/', $string);
$check2 = preg_match('/^NA$/', $string);
0 голосов
/ 01 февраля 2011

С помощью регулярного выражения довольно просто:

$regExp = '/^(?:[0-9+-]+|NA)$/i';
echo preg_match($regExp, $string) ? 'true' : 'false';

Тем не менее:

  • Вы уверены, что хотите, чтобы строка содержала 0-9, - и +? Это сделало бы следующие действительные числа:
    • -9 + 9291 ---
    • + 2039-291919 ++ 0203-19293
  • Если вы хотите соответствовать только NA, а не nA, Na и na, удалите i в конце шаблона.
...