In my opinion...

"I haven't a ..." sounds slightly strained and old-fashioned.

"I don't have a ..." sounds neutral.

"I haven't got a ..." sounds informal, bordering on council-estate-y.