Literary, Ban is `10 thousand', Zai is `years old'. It means `May you live 10 thousand years (long)' and then it means Salute! or Cheers! This word is for some kind saluting.
I saw some American movies use this word when someone jumps into a pool from a high place. I was surprised it seems Japanese. But why they jumped into a pool with `Live long!', `Salute!', `Cheers!' or `10 thousand years old'?
In world war II, Japanese soldiers cried `Tennouheika Banzai' (= Salute the emperor.) with charging. So, foreign people seems misunderstood that means `charging' and also lacked `Tennouheika'. (This should be there.) But this word means basically `live long (with happiness)'.
The Webster dictionary mentioned about this with much more precise, but still there are `Banzai attack and Banzai charge'. So maybe this is already English word and somehow lost the original meaning. My English-Japanese dictionary said also `reckless attack (Japanese)' However, my two Japanese-Japanese dictionaries does not show such means.
Nowadays, we use this word when someone married, someone got his/her children or someone graduates her/his school etc.. Because that means `salute'. (One famous exception, when parliament will be dissolving, the politicians shout this word three times. This is because a historical event. but I think it is also unnatural.)