2013-06-28 3 views
-4

Может кто-нибудь предложить, что бы регулярное выражение для строки, которая проверяет следующие условия:Regex выражение для Apostrophe

  1. Может содержать символы A-Z или A-Z. По крайней мере, должен быть там.
  2. Может содержать (пробел) «(апостроф), -. (Дефис), (точка)

Все, кроме этого набора, такие как специальный символ или номер или что-нибудь еще, было бы недопустимым символом ,

+1

Можете ли вы показать нам, что вы пробовали, и почему это не сработало? –

+0

'[a-zA-Z \ s '\ - \.] +' Вы ищете класс с квантором '+'. –

+0

[прочитайте несколько руководств] (http://www.regular-expressions.info/tutorial.html), вы должны легко справиться с этим самостоятельно – musefan

ответ

4

Что-то, как это должно работать

/^[a-zA-Z' \.\-]*[a-zA-Z]+[a-zA-Z' \.\-]*$/ 

что переводится «по крайней мере, одну букву в окружении нуля или более любого действительного характера».

1

Обычно я не отвечаю на вопросы gimme codez, но эй, это пятница!

Есть, возможно, тысячи вопросов здесь на SO, следуя той же схеме:

Plz help me with a regular expression for a string that 
- _must_ contain at least one X 
- _can_ contain Y 

и ответ, как правило, что-то вроде

/^ Y* X [XY]* $/ 

или если вы фантазии

/^ (?=.*X) [XY]+ $ 

К сожалению, все эти ответы (или, вернее, эти вопросы) ошибочны. Проблема, как обычно, заключается в том, что спецификации неверны: искатель принимает некоторые «хорошие» примеры и описывает их в вопросе, но не понимает, что это описание также соответствует многим «плохим» случаям. Если взять буквально, на этот вопрос будет дано выражение, которое выполняет только половину его работы - да, оно проверяет хорошие случаи, но оно не отвергает плохие. Хорошее выражение должно сделать и то, и другое!

Пример: Я хочу проверить номер телефона, что-то вроде 123 или 123-456-789. Так я отправляю вопрос о SO:

Plz help me with a regular expression: 
- must contain at least one digit 
- can contain a dash 

и через несколько секунд я получаю

/^-*\d[\d-]*$/ 

, которые я проверить мои примеры и вставить в мой код (работает!). На следующее утро, к моему глубочайшему неловкости, кто-то регистрируется на мой сайт, содержащий этот «номер Telefone»:

----------3----------- 

Мораль истории: никогда не проверять «струны». Проверка объектов домена!

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