it kinda depends on how you'd like to use the value you're extracting! If you need to have it displayed on the Form, then certainly a Calculated Control would do the trick. But if you just wanted to use it in code, then why not just extract it in real-time?
No matter using a variation of:
"john.smith@hello.co.uk".match(/@(.*)/)[1];
Should produce the result you'd like.
Below are two examples of how one might approach it either way:
/* Directly in a Calc Control formula */
{email_Control_Reference}.match(/@(.*)/)[1];
Used in code by passing the Email Control into a function as an argument:
(function(emailControl){
var emailHost = emailControl.match(/@(.*)/)[1];
/* Your Other Code */
}({email_Control_Reference}))
Let me know if you need further help!