2012-12-28 2 views
0

주소를 취하는 html text field에 대한 자바 스크립트에서 정규식 패턴을 만들고 싶습니다. 그래서 나는 단지 사용자가 [a-z,A-Z,0-9]를 입력하려는 경우에만이 기호 나 또한 빈 문자열이 될 수있는 최대 문자 수를 전송에서 사용자를 방지 할 [,#-.] 미만 100HTML5 텍스트 필드에 대한 정규식 패턴

이것은 HTML <input>은 다음과 같습니다

<input type="text" id="addy" maxlength="100"/> 

저는 자바 스크립트를 처음 사용하기 때문에 정규식 패턴을 준수 할 수있는 함수를 만드는 방법을 모르겠습니다. 나는이 시도 kolink에 의한 권고에 따라

감사

편집

: 이것은 이제 다른 <select> 경우 선택되지 않은 작품

<input type="text" style="width:285px" placeholder="Enter A Precise Address" name="address0" id="address" 
    pattern="[ a-zA-Z0-9,#.-]+" maxlength="100" title="Standard address notation only"/> 

. 그렇지 않으면 pattern 특성을 선택하지 않습니다. 그러나 똑같은 코드는 jsfiddle : http://jsfiddle.net/peD3t/7/에서 예상대로 작동하지만 브라우저에서는 작동하지 않습니다.

+0

이 작업의 코드 부분을 보여 주면 사람들이 도움을 줄 것입니다. – edem

+0

무언가를 시도한 다음 여기에 게시하고 작동하지 않는 것이 무엇인지 설명하십시오. 이것은 나를위한 포럼이 아닙니다. 당신이 시도하고 실패한 것을 알게되고 성공했다면 성공할 것이다. –

답변

8

HTML5는 당신에게 당신이 특정 패턴을 필요로 할 수 있습니다 pattern 속성을 제공 http://pastebin.com/qQGJ4EK5

감사 :이 페이스트 빈에있는 코드입니다. 이 경우 원하는 경우 pattern="[a-zA-Z0-9,#.-]+"

이전 버전에서는 서버 측에서 항상 유효성을 검사해야하므로 상관 없습니다.

+0

'pattern' 속성을 제안 해 주셔서 감사합니다. 그러나 나는 그것이 내 개정 된 질문에서와 같이 내 HTML에서 작동하도록 할 수 없습니다. – joe

+0

어떤 브라우저를 사용하십니까? –

+0

신경 쓰지 마라, 명백하게 패턴은 이미 고정되어있다. 시작과 끝에서'^'와'$'를 제거하면 효과가 있습니다. –

0

$ (문서) .ready (함수() {

$('input').keyup(function() { 
    var $th = $(this); 
    $th.val($th.val().replace(/[^a-zA-Z0-9,#.-]/g, function(str) { return ''; })); 
}); 

});

이렇게하면됩니다.