Добавить проверку для поля регистрационного имени

Я пытаюсь добавить правило проверки в поле регистрационного имени. Я добавил в свой файл validation.js такую ​​функцию, как:

this.setHandler('name',
function (value) {
regex=/^\S[\S ]{2,98}\S$/;
return regex.test(value);
}
);

В Registration.xml (components/com_users/models/forms/) я добавил в поле имени:

class="validate-name"
validate="name"

Но это все еще не проверяется на соответствие правилу. Что я делаю неправильно?


person theoth    schedule 04.04.2012    source источник


Ответы (2)


каковы свойства вашего поля регистрации?
При первом взгляде на ваше регулярное выражение я думаю, что минимум 2 символа, максимум 98. И вы можете добавить любой символ, кроме пробелов?

На вашем месте я бы установил в поле регистрации (если указано имя пользователя) значение \w\S{4,}
\w удобно, так как оно покрывает выражение [a-zA-Z_0-9], а если вы добавите к нему \S, это покроет проблему с пробелами.
Кроме того, почему вы используете «\S» в начале и в конце вашего выражения, это немного размыто для меня.

Надеюсь, это помогло ;)

PS: Если вам нравится хороший инструмент для практики/тестирования ваших регулярных выражений, я могу порекомендовать Конструктор регулярных выражений . Это бесплатное программное обеспечение и его нельзя использовать. Кроме того, это дает вам много дополнительной информации о всевозможных выражениях.

person finxie    schedule 06.04.2012
comment
Привет, свойство поля - <field name="name" type="text" class="validate-fullname" description="COM_USERS_REGISTER_NAME_DESC" filter="string" label="COM_USERS_REGISTER_NAME_LABEL" message="COM_USERS_REGISTER_NAME_MESSAGE" required="true" size="30" validate="fullname" /> , однако проблема на самом деле не в регулярном выражении, а в том, чтобы регулярное выражение подключалось к полю. Спасибо за совет по бесплатному программному обеспечению регулярных выражений;), я проверю его. Знаете ли вы, что я делаю неправильно, чтобы поле не проверялось в соответствии с регулярным выражением? - person theoth; 07.04.2012
comment
почему вы используете <field /> ? почему бы просто не использовать <form onSubmit=...><input /></form>? вы должны прочитать [эту статью][1]. Я знаю, что это выглядит очень просто, но все же помогает ^^ [1]: docs.joomla.org/ Client-side_form_validation - person finxie; 08.04.2012
comment
Хотя это не моя собственная форма. Это стандартное поле регистрации joomla ;), я просто пытаюсь добавить правило проверки в поле имени. Так же, как поля электронной почты, имени пользователя и пароля. - person theoth; 08.04.2012

Чтобы заставить проверку работать, нужно было добавить aria-required="true" в поле.

person theoth    schedule 13.04.2012