2014-01-10 6 views
1

Я хочу построить регулярное выражение, которое состоит из буквенно-цифровых символов и может иметь пробелы в конце строки, но не в начале или в середине строки.Регулярное выражение проверяет пробелы в середине строки

Я придумал что-то вроде этого ^[a-zA-Z0-9]+[a-zA-Z0-9\s]*$, и это не допускает места в начале, но оно не работает для пробелов, присутствующих в середине строки.

Любые предложения?

+0

Просьба привести несколько примеров ввода и вывода. –

ответ

2

Если пробельные разрешено только в конце, а затем сделать что явное:

^[a-zA-Z0-9]+\s*$ 
4

Вы позволяете пространства ИЛИ символов в конце, несколько раз. Тогда вы можете иметь пробелы с последующим гольцов:

^[a-zA-Z0-9]+[a-zA-Z0-9\s]*$ 

enter image description here

Вместо этого, изменить [a-zA-Z0-9\s]* часть в \s*, чтобы убедиться, что вы не будете иметь символы после пространства:

^[a-zA-Z0-9]+\s*$ 

enter image description here

+1

Хорошая визуализация! –

+0

Это было просто решение, в котором я нуждался! BTW: как вы сделали визуальные эффекты? –

+0

Вы можете использовать [Regexper] (https://regexper.com/) – zessx

0

просто используйте <f:validateRegex pattern="^[a-zA-Z0-9]+$" />

Пробелы в начале и в конце будут автоматически удалены во время формы. Валидация и пользователь не сможет добавить пробелы в середине текста.

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