PHP проверяет, содержит ли строка определенный процент буквенно-цифровых символов

У меня есть php строка $comment, иногда поле $comment будет содержать не буквенно-цифровые символы, есть ли способ узнать, какой процент $comment является буквенно-цифровым?

Спасибо

2 ответа

Решение
$comment_alpha = preg_replace('/[^a-z\d]+/i', '', $comment);
$alpha_percent = 100 * strlen($comment_alpha) / strlen($comment);

Вы можете попробовать что-то вроде этого: (не особенно эффективно)

<?php
$string = "TestItOut##@22383";



$all = array(
"0","1","2","3","4","5","6","7","8","9",          
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",     
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"
);

$num_alphanum = 0;
foreach ( $all as $char ) {
    $num_alphanum += substr_count( $string, $char );
}

$percent = ( $num_alphanum / strlen( $string ) ) * 100;

echo $percent . "%";

?>

Но Regex может быть проще подход проще

Другие вопросы по тегам