Как определить, содержит ли строка 1 заглавную букву в PHP - PullRequest
16 голосов
/ 13 декабря 2010

Не удалось найти функцию для этого. Я предполагаю, что мне нужно использовать регулярные выражения?

Я пытаюсь сделать html перенаправления в php в тех случаях, когда URL содержит хотя бы 1 заглавную букву.

пример: http://www.domain.com/Michael_Jordan необходимо перенаправить на http://www.domain.com/michael_jordan - единственная проблема в том, что я не могу найти скрипт для обнаружения, если существует хотя бы одна заглавная буква

Ответы [ 5 ]

35 голосов
/ 13 декабря 2010

Некоторые регулярные выражения должны быть в состоянии работать, вы можете использовать preg_match и [A-Z]

if(preg_match('/[A-Z]/', $domain)){
 // There is one upper
}
29 голосов
/ 13 декабря 2010
if (strtolower($url) != $url){
  //etc...
4 голосов
/ 11 апреля 2012

Вы также можете попробовать это

if (!ctype_lower($string)) {
    // there is at least une uppercase character
}

, но не уверены, что это более эффективно, чем два других предложенных метода.

1 голос
/ 23 мая 2012
<code>preg_match_all('%\p{Lu}%usD', 'aA,éÁ,eE,éÉ,iI,íÍ,oO,óÓ,öÖ,őŐ,uU,úÚ,üÜ,űŰ', $m);
echo '<pre>';
var_dump($m);
echo '
';

Протестировано с венгерскими символами utf-8, [AZ] только для латиницы 1.

0 голосов
/ 27 июня 2014

Вот более простой пример:

$mydir = "C:\Users\John" ;

print preg_match('/^[A-Z]:\.*/', $mydir, $match )."\n" ;
print $match[0]. " preg match \n" ;

Производит:

1
C: preg match

Это говорит о том, что парены не нужны - для одного совпадения, как минимум,

Посмотрите на это, чтобы быть более конкретным для вашего приложения: PHP для поиска смешанных слов в верхнем и нижнем регистре в строках?

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