I would use a callback tagsChangedto determine when a new tag was added, and then check and remove it if it is not valid. I see you used it beforeTagAdded- I'm not sure where you got it from? But I do not know the plugin.
. JSFiddle
$(document).ready(function () {
$('#editOnClick > ul').tagit({
select:true,
triggerKeys:['comma', 'enter', 'space', 'semicolon', 'tab'],
tagSource:"view_email_get_emails.php",
editOnClick:true,
tagsChanged: function(tagValue, action, element){
if (action == 'added'){
if (!isEmail(tagValue)){
$('#editOnClick > ul').tagit("remove", 'tag', tagValue);
}
}
});
function isEmail(email) {
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}
});