Is there is list of valid characters for a JID?

I know that some characters appear to be invalid, such as a period ("."). Is there a list of valid or invalid characters for a JID?

Here you will find a list of characters that have to be escaped:

method JID.escapeNode()

I would say you can use everything you can use as email address.

All “normal” charaters, digits, the dot (".") and minus ("-"). Maybe plus ("+") und sharp ("#"). Everything else should be escaped.

Coolcat