PHP регулярное выражение для проверки строки - PullRequest
0 голосов
/ 30 сентября 2010

Мне нужно регулярное выражение для проверки строки, которая имеет длину более 2 символов, первый символ должен быть алфавитным, последний символ должен быть '_'.

И как мне прописать только первый символ?Спасибо.

Ответы [ 4 ]

3 голосов
/ 30 сентября 2010

Для соответствия

preg_match( "/^[a-z].+_$/i", $str );

В верхнем регистре первая буква

ucfirst( $str );
2 голосов
/ 30 сентября 2010

Чтобы сопоставить ввод не менее чем с 3-мя символами, при этом первым должен быть алфавит в верхнем регистре и последний знак начала подчеркивания:

^[A-Z].+_$

Чтобы разрешить любой алфавит в начале, вы можете использовать:

^[A-Za-z].+_$
2 голосов
/ 30 сентября 2010

Попробуйте:

/^[a-zA-Z].+_$/

Примечание: вместо .+ вы можете использовать [some allowed chars]+

1 голос
/ 30 сентября 2010

Вы также можете сделать это следующим образом (может сохранить дальнейшее регулярное выражение, сглаживающее строку):

if ((strlen($str) < 3) || !ctype_alpha($str[0]) || (strrchr($str, '_') != '_')) {
    echo 'Invalid string';
} else {
    $str = ucfirst($str);
}
...