Из списка строк найдите строки с символами и комбинацией символа + числа - PullRequest
0 голосов
/ 17 июня 2020

У меня есть разные типы строк, но я хочу показать только те строки, которые представляют собой только символы или символы с цифрами.

$string = "abcxy";
$string1 = "abcxy12";
$string2 = "74.1234567,10.234";
$string3 = "100234";

if (ctype_digit($string)) {           
        echo "Yes\n"; 
    } else { 
        echo "No\n"; 
    } 

Это не работает для string1 и string2.

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

Ваш код работает отлично, и просто чтобы знать, что функция ctype_digit() проверяет все символы как numeri c, поэтому , в строке приводит к функции, возвращающей false.

<?php
$result = ["abcxy","abcxy12","74.1234567,10.234","100234"];

foreach ($result as $value) {
  if (ctype_digit($value)) {           
        echo "Yes\n"; 
    } else { 
        echo "No\n"; 
    } 
}
?>

Выход

No
No
No
Yes
0 голосов
/ 17 июня 2020

PHP метод ctype_digit проверяет наличие символа (ов) numeri c. См. здесь для получения подробной информации об этом методе.

Для ваших особых нужд вы можете использовать какое-нибудь регулярное выражение, как показано ниже:

регулярное выражение для алфавитов и чисел (символ с цифрами ) - /((?:\d+[A-Za-z]|[A-Za-z]+\d)[A-Za-z\d]*)/

регулярное выражение для символов - /^[A-Za-z]+$/

Объединение этих двух:

function validateCharactersOrCharactersWithDigits ($string){
      return preg_match ('/((?:\d+[A-Za-z]|[A-Za-z]+\d)[A-Za-z\d]*)/' , $string) ||  
         preg_match ( '/^[A-Za-z]+$/' , $string);

}

Пожалуйста, проверьте, работает ли это для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...