2015-05-13 3 views
0

Я ищу выражение, которое требует пространства в строке, оно не должно быть мертвым в середине, а не в конце (или в начале).Пространство проверки регулярных выражений в середине строки

У меня есть взгляд на google и переполнение стека, есть немало, но я не нашел того, что делает то, что мне нужно.

Вот что у меня есть на данный момент

var re = /^[A-Z]\'?[- a-zA-Z]([a-zA-Z])*$/igm; 
+0

Вы может совпадать с символами пробела с \ s – Cr3aHal0

+0

'\ s' также соответствует другим формам пробела, например, разрыву строк и вкладки, которые могут быть нежелательными. – Utkanos

ответ

4

Основываясь на ограниченных требованиях, которые вы указали, это будет делать. Он требует, чтобы строка содержала ОДНО место, где угодно, но в начале или в конце.

/^[^ ]+ [^ ]+$/ 

Пояснение: якорь в начале строки, позволяют один или более не-символы пробела, а затем один пробел, а затем, опять-таки, один или более символов без пробелов, к концу строка.

[^ ] - знак отрицательного характера. То есть, он говорит: «ничего, кроме символов внутри [ и ]

+0

Хороший ответ, вы не хотите это объяснять – DontVoteMeDown

+1

См. edit .... ... – Utkanos

0

Ваше регулярное выражение должно быть:... /^[A-Z]\'?[-\sa-zA-Z](\s[a-zA-Z])*$/igm; Согласно моей идее, регулярное выражение не признает whitespace, что почему я заменить те с \s

+0

Объясните свой код немного –

+0

Хотя это может ответить на вопрос, всегда полезно добавить текст в свой ответ на e xplain, что вы делаете. Прочитайте [как написать хороший ответ] (http://stackoverflow.com/help/how-to-answer). – jurgemaister

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