2013-03-10 3 views
0

Интересно, может ли кто-нибудь помочь мне.Разрешить апостроф в предварительном матче Проверка

Я использую следующее выражение соответствия preg как часть моей проверки поля.

(!preg_match('/^$|^[A-Za-z0-9 .,;-]{5,60}$/', $address4)) 

Проблема у меня в том, что я не могу получить эту работу, когда я включаю апостроф как часть персонажей, которые я хочу, чтобы позволить.

Я прочитал несколько учебников и попытался следующие без успеха, так что я явно делаю что-то неправильно:

(!preg_match('/^$|^[A-Za-z0-9 .,;-\']{5,60}$/', $address4)), и

(!preg_match('/^$|^[A-Za-z0-9 .,;-\'\]{5,60}$/', $address4)) 

Я просто интересуется, может ли кто-то, возможно, Посмотрите на это, пожалуйста, и дайте мне знать, где я ошибся.

ответ

1

Символ минуса в классе символов вашего регулярного выражения всегда должен быть в конце. В противном случае это будет принято для диапазона символов. Поэтому попробуйте переключить апостроф и минус:

preg_match('/^$|^[A-Za-z0-9 .,;\'-]{5,60}$/', $address4) 
+0

Hi @nwellnhof, большое спасибо за то, что нашли время, чтобы ответить на мой пост и решение. Я пробовал код, который вы любезно отправили, и, к сожалению, это не работает. Большое спасибо и добрые пожелания – IRHM

+0

Попробуйте обернуть весь шаблон в кавычки «(вместо одиночных кавычек»), а затем вы можете использовать «unescaped». Разве это имеет значение? Это действительно не так, но кто знает. без «или»? И, конечно же, вы осторожны, что это настоящая ASCII-одиночная цитата, а не какая-то MS Smart Quotes dross? –

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