2016-07-12 1 views
0

Я использую parsley js для проверки ввода, и я использую шаблон parsley data, который позволяет мне проходить в регулярном выражении.Regex для проверки строки для трех символов небезопасного пробела

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

valid: 1 2 b 
invalid: 1 b [space] 
valid: 3x c 1 3n 
invalid: 1  b 

[пробел] = это просто белое пространство, использовали его только в этом примере, так как это было в конце строки, и во всех остальных примерах, промежутки между символами представляет есть пробелы.

Я пробовал:

\S{3} 

без успеха

и

[\S{3}] 
+1

Даже если вы не сильны в регулярном выражении, вы должны знать, чтобы правила на [Как спросить] (http://stackoverflow.com/help/how-to-ask). Более того, ваши требования не ясны: 3 '\ S' на конце или в любом месте внутри строки? –

+1

'\ S (?: \ S * \ S) {2}' – sln

ответ

4
\S{3,} 

\ S {3,} соответствует любому небелых пробел [^ \ г \ n \ t \ f]

Квантор: {3} Между 3 и неограниченное количество раз, столько раз, сколько это возможно, отдавая по мере необходимости [жадный]

например, abc или abc def

https://regex101.com/r/gO6sT3/1


Это, как отметил Wiktor Stribiżew, соответствует только последовательных символов. Если вы имеете в виду «вход может иметь любое количество пробелов, в любом месте, до тех пор, пока, по крайней мере, три не пробельные символы в любом месте», то может быть:

.*\S.*\S.*\S.* 

Все или ничего, не witespace, ничего или ничего, без пробелов и т. д.

eg a b c или ab c или abc

https://regex101.com/r/wY0kL4/1

Также см ничего, и все на месте: http://www.regular-expressions.info/

+2

Это не будет соответствовать '1 2 3' –

+1

@ WiktorStribiżew Вся часть удовольствия от гонок для« легких »вопросов. Я добавил альтернативу. – TessellatingHeckler

+1

Хорошо. Просто '. * \ S. * \ S. * \ S. *' будет иметь большой откат. В этих случаях я предпочел бы использовать подход, не относящийся к регулярному выражению. Или более простое разделение с '\ s +', соедините и проверьте количество символов. –

1

"[^\s][^\s][^\s]+"
[] содержит класс символов.
/s является символом пробела.
^ работает как логичный не.
В + ловит один или несколько из предыдущего символа
Вы, возможно, потребуется добавить слэшами в зависимости от каких-либо специальных символов эвакуационных