2013-04-04 1 views
1

Я работаю с библиотекой Smack, и, насколько я понимаю, нет функции для проверки пользовательского jid, который используется при создании нового Connection. (Пожалуйста, исправьте меня, если я ошибаюсь)Smack User validation и профиль Nodeprep stringprep

Итак, я решил написать новый, и для этого начал изучать RFC-6122, который содержит блок ABNF с правилами проверки.

К сожалению, я не очень хорошо знаю специфические вещи Юникода и связанные с BNF вещи, поэтому я не понял, как сделать правильное регулярное выражение в соответствии с этим блоком BNF. Особенно меня смущает такая вещь, как «Nodeprep profile of stringprep», упомянутая в блоке ABNF.

Не могли бы вы прояснить этот вопрос или дать мне несколько советов?

ответ

1

Это определено в RFC 6122, Appendix A, но это вряд ли поможет вам, не прочитав также RFC 3454 и кучу другого исходного материала. Это очень важно для реализации, поэтому я настоятельно рекомендую вам использовать существующую библиотеку Stringprep, такую ​​как libidn.