2016-05-05 4 views
-1

Мне нужно немного помочь с использованием регулярного выражения. Мне нужен контрольный текст, состоящий только из символов, цифр и символов _ -():,. ?/+ * = «»% @ # $Как написать регулярное выражение?

Стараюсь:

if(preg_match("/^[А-Яа-яa-zA-Z0-9()-_«»%@#\s]+$/", $title) { 
    //success 
} else { 
    //error  
} 

Это не работает.

+2

Что не работает? Каков ваш вклад? – anubhava

+0

Вы имеете в виду _letters_, цифры и символы? –

+0

Поместите дефис в конце класса символов. ''/^ [ёЁА-Яа-яа-zA-Z0-9() _ «»% @ # \ s -] + $/"' и добавить 'ЁЁ' –

ответ

1

Вы Шоул исправить регулярное выражение, как

'/^[ёЁА-Яа-яa-zA-Z0-9()_«»%@#\s-]+$/' 

Вы также можете избежать дефис если другой «разработчик» может сложить больше символов в регулярных выражениях и уничтожить его (как Lashane mentions in the comment).

Два основных момента:

  • ё и Ё отсутствовали в а-яА-Я диапазоне
  • - между ) и _ создал диапазон, позволяющий все заглавные буквы и некоторые символы:

enter image description here

См. regex demo.

Смежные вопросы