2013-12-12 1 views
1

잠시 동안 해결책을 찾고 있습니다 ... 찾았지만 결국 작동하지 않으며 더 이상 관리 할 수 ​​없습니다. 내가 무엇을 잘못했는지보기 위해서 ...jquery 문자를 입력하지 않고 플러그 인을 입력하십시오.

내가 원하는 것은 나의 contactform에서 "#email"을위한 입력 필드에 테두리가 빨간색으로 강조되어야하는 잘못된 전자 우편 주소가 포함되어있다. 바로 지금 내 코드를 사용하여 입력 필드가 비어있을 때만이 강조 표시를 수행합니다. 그래서 inputfield #email의 값에 @ 문자가 포함되어 있는지 확인하고 싶습니다. 입력 필드 #email 내 jQuery 코드는 여기

:

$("form").on("submit",function(){ 

    valid = true; 

if ($("#email").val() == '' || $("#email").val().indexOf(/[@]/) == false) { 
     $("#email").css("outline-color","#FF4E00") 
     $("#email").css("outline-style", "solid"); 
     $("#email").css("outline-width", "2px"); 
     $("#email").attr("placeholder" , "Vul een correct e-mailadresin!"); 
     $("#email").css("color", "#FF4E00"); 
     valid = false; 
    } 
)}; 

아무도 나를 도와 드릴까요? ... 나는이에 새로운 오전 그리고 ... 지금 그리고 내 혼란 영어 죄송 조금 불분명

당신은 방법은 여기에 나열 사용할 수 있습니다
+0

'indexOf ("@") == -1'는 충분해야합니다. 그러나 필드에 올바른 이메일 주소가 있는지 확인하는 강력한 방법은 아닙니다. –

+1

'.indexOf()'는 숫자 (위치)를 반환하지 않아야합니까? – melancia

+0

charPos ('@')를 사용합니다. –

답변

1

: https://stackoverflow.com/a/2855946/682480


function isValidEmailAddress(emailAddress) 
{ 
    var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i); 
    return pattern.test(emailAddress); 
}; 

$("form").on("submit", function() 
{ 
    valid = true; 

    var $email = $("#email"); 
    if (!isValidEmailAddress($email.val())) 
    { 
     $email 
      .css 
      ({ 
       "outline-color": "#FF4E00", 
       "outline-style": "solid", 
       "outline-width": "2px", 
       "color": "#FF4E00" 
      }) 
      .attr("placeholder" , "Vul een correct e-mailadresin!"); 

     valid = false; 
    } 
)}; 
+0

나는 방법을 알고 싶지 않습니다. 긴 구문 분석은 regexp가 걸렸습니다 ... – aksu

+1

매우 빠르고 ... 직접 확인하십시오 : http://so.devilmaycode.it/jquery-validate-e-mail-address-regex/ –

+0

고마워요! 이전에는 정규식에 대해 들어 본 적이 없었습니다. 아마 그 점을 알아 보도록하겠습니다. – user3046998

0
$("#email").val().match(/@/) == null 
0
$("#email").val().charPos('@') !== -1 
0

String.indexOf()은 일반 표현식이 아닌 일반 문자열을 예상하며 부울 대신 정수를 반환합니다. 내 콘솔에서 바로 :

"abc".indexOf(/[@]/) == false 
false 
"abc".indexOf("@") == -1 
true