2014-02-13 2 views
0

Я очень новичок в этом Grails. Я знаю, что в нем есть способы остановить ввод конкретным символом, используя ограничения и соответствия для поля.regex валидация для клавиатуры специальный характер- гравий

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

я использовал

matches:/^[^[email protected]#*^%~]*$/ 

он проверяет, что поле не имеет * ^% $ # @ ~, и он отлично подходит для этого набора символов, но я также хочу ограничить пользователя добавлением + - (}/\ | {[?]! <> ~; ', = & _ .: "(короче говоря, все специальные символы на клавиатура) и использование только этих ограничений. Я попытался поместить их в этот шаблон регулярных выражений, но он все еще разрешает это или разрешает, чем он не показывает по ошибке mes которые были введены в поле.

Для бывших: - Если бы я поступил (+) &^ чем сообщение об ошибке отображается только как «Пожалуйста, не вводите ^.» но я хочу: «Пожалуйста, не вводите (+) & ^."

Пожалуйста, дайте мне знать, если кто знает.

Обратите внимание, что я должен использовать только поддержку Grails/Groovy без JS/JQuery.

Благодаря

ответ

1

Ниже регулярное выражение предотвратит попадание любой символ, кроме алфавитно-цифровых символов, а также по меньшей мере один символ. Если вы не хотите, как минимум одного символа, а затем заменить + с *

/^[^a-zA-Z0-9]+$/ 
+0

Большое спасибо ... !!! Я получил эту идею и исправил проблему ... Cheers – artapart

+1

'/^[^ a-zA-Z0-9] + $ /' будет препятствовать вводу любого символа, который IS буквенно-цифровой. Я считаю, что вы имели в виду '/^[a-zA-Z0-9] + $ /', который соответствует только буквенно-цифровым символам. – Xeon

+0

hi @Xeon, регулярное выражение верное. '[^ a-zA-Z0-9]' означает символы, которые не принадлежат a-z и 0-9. Знак '^' просто перевернул значение. –

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