PHP: регулярное выражение для точного соответствия



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



$regex = '/[w ]{7,30}/';


Моя ревизия выглядит так, как я хочу, но она не работает вообще:



$regex = '^[w ]{7,30}$';


Вот как я использую регулярное выражение:



public function isValid( $value )
{

$regex = '/^[w ]{7,30}$/';
return preg_match( $regex, $value ) ? true : false;

}


Я пытаюсь соответствовать следующему:




  • любая буква нижнего / верхнего регистра

  • любая цифра

  • может содержать пробелы

  • не может содержать разрывов строк или пробелов табуляции

  • минимум 7 символов

  • максимум 30 символы


Допустимые входные данные:




  • тестирование

  • Test ing

  • Test123

  • тест 123

  • тест_ _ _


Недопустимые входные данные:




  • тестирование#

  • Testin8+

  • Tester1&


Первое регулярное выражение будет соответствовать всем допустимым входным сигналам, а также недопустимым (пока первые четыре символа допустимы, остальное его не волнует). Второе регулярное выражение ничему не соответствует.

536   4  

4 ответов:

Попробуйте объединить оба типа:

$regex = '/^[\w ]{7,30}$/';

Не забудьте ваши разделители:

/^[\w ]{7,30}$/

Вы пропускаете / в начале и в конце.

$regex = '/^[\w ]{7,30}$/';
'/^[\w ]{7,30}$/'

Вы пропускаете разделители.

Comments

    Ничего не найдено.