As far as HTML is concerned, they are just characters you can use in the name, no different from a
, 7
or !
.
If you plan to access form elements via the name on the client side, then they prevent you using dot notation to do so in JavaScript (since [
has special meaning in JS) so you have to use square bracket notation instead.
You might treat the characters as having special significance once they reach the server. PHP which will file the data as $_REQUEST['user']['email']
instead of $_REQUEST['user[email]']
, and a number of other form parsing libraries for various languages have adopted the feature.