preg_match не ми приема „р“-то

misho

Registered
Искам да огранича възможните символи, които да се въвеждат в една поле. Проверката ми е:
Код:
if(preg_match('/[^А-ЯA-Za-zа-я0-9_-]/',$post_url_name) == 1 AND $page_edit_id != 1) {
            // error
        }
Ако сложа непозволен символ веднага връща грешка, ако пиша позволени - не. До тук добре, но когато въведа буквата р на български (и то само, ако е малка), ми връща грешка - съдържа непозволени символи. :shock: Не съм проверил цялата азбука, така че може и други букви да правят проблеми. От къде идва това? :lol:

Промяна: и э, г, х правят проблеми също... :idea:
 
if(preg_match('/[^a-zа-я0-9_-]/iu',$post_url_name) == 1 AND $page_edit_id != 1) {
// error
}

Модификатора i прави да няма значение дали ползваш малка или голяма буква, а u оправя проблема ти. Единствено файлът трябва да ти е конвертиран към utf иначе ще даде грешка функцията:

Warning: preg_match() [function.preg-match]: Compilation failed: invalid UTF-8 string at offset 2 in .....
 
Благодаря много! :?: А какво прави u, освен да ми решава проблемите? :D
А и не ми изкара грешка, но въпреки това, ако знаеш как да конвертирам страницата до utf-8 с NetBeans, ще ми е от полза. :wink:
 

Back
Горе