I'm try to using validation InputFormRegularExpressionValidator. Code behind
<SharePoint:InputFormTextBox runat="server" id="TitleTB"__designer:bind="ddwrt:DataBind('i',concat('ff1',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@Title')}"/>
<SharePoint:InputFormRegularExpressionValidator ID="Validator" runat="server"
Display="Dynamic" SetFocusOnError="true"
ControlToValidate="TitleTB"
ValidationExpression="^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]$"
ErrorMessage="Enter a valid email address." />
Validation is always fired regardless of the input.