Проверьте правильность регулярного выражения и длину. Ваше регулярное выражение имеет успех для пустого поля.
Здесь вы можете проверить длину коллекции элементов jQuery
if(!$("#sForm input#write").length > 0) $("input#sub").hide();
Но вы должны проверить длину значения
detectEmail.length == 0
$('input#sub').hide();
$('input').keyup(function() {
$('span.attention').hide();
var detectEmail = $(this).val();
var emailRegex = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if(detectEmail.length == 0 || !emailRegex.test(detectEmail))
{
$('#sub').hide();
$(this).after('<span class="attention">Writing valid e-mail...</span>');
}
else
{
$('#sub').show();
}
});