2012-02-20 2 views
-1

Я пытаюсь убедиться, что строка, которую я публикую, имеет только буквенные и цифровые буквы/цифры +,.; и т. д. Однако все проверки, которые я, по-видимому, все еще приносят обратно, являются действительными?Как проверить, содержит ли строка ничего, кроме QWERY/1234

Кто-нибудь знает это решение?

Благодаря

+0

Можете ли вы привести пример вашей текущей проверки, которая не работает? – cOle2

+0

Ну, я проверял UTF8, но я понял, что на самом деле эти символы - UTF8. –

ответ

0

Если вы знаете точно какие символы вы хотите разрешить, regex следует фитинг ваших потребностей:

// matches exactly the characters you asked for, no more 
preg_match(/[a-zA-Z0-9,\.;]*/, $your_string); 

Будьте уверены, чтобы избежать meta characters, потому что, например, не маскирование точка (.) будет соответствовать каждый символ.

+0

Я обновил его до «^/[a-zA-Z0-9 \; \ '\, \. \;] * /" Но когда я попробую строку asdgdfgsasdf.,;'; ir возвращает false, любые идеи, что я делаю неправильно? –

+0

Попробуйте добавить '' 'anchor:' '/^[a-zA-Z0-9, \; '] + $ /" ' – cOle2

+0

Кажется, вам не нужно бежать"; ","' " и "," потому что они не имеют значения метасимвола. И вы должны начинать и заканчивать тем же символом («/» обычно), «^» должно находиться внутри «/» s (см. Регулярное выражение cOle2). –