2012-02-24 3 views
0

다음은 알파벳, 숫자, 공백, del, 백 스페이스 만 입력하는 스크립트입니다. 이 코드에서 첫 번째 위치의 "input"이 "공백"이고 더 이상 사용자 입력에 aphanumeric characters이 없으면 false를 반환해야한다고 변경해야합니다. true.복잡한 문자열 작업

JS

function usrInp(evt) { 
var char = (evt.which) ? evt.which : event.keyCode 
if (char > 64 && inp < 91 || char > 96 && char < 123 || char > 47 && char < 58 || char  == 127 || char == 8 || char == 32) { 
    return true; 
} 
else { 
    return false; 
} 
} 

양식의 HTML

<form name="one" id="one"> 
    <input type="text" name="abc" id="abc" onkeypress="return usrInp(event)" /> 
</form> 
+0

정규 표현식을 사용해 보았습니까? – Fermin

+0

@Fermin 여기에 구현하는 방법 ...? – sandbox

답변

0

왜 정규식하지?

return input.match(/^[\w\s]*$/g) != null 

입력 내용이 A-Z, 0-9, 공백 또는 밑줄 만 포함하면 true를 반환합니다.

+0

하지만 첫 번째 위치의 "input"이 "공백"이고 사용자 입력에 더 이상의 영숫자 문자가 없으면 false를 반환하고 다른 모든 경우에는 true를 반환해야합니다. 다시 말하자면, 문자열은 "White Spaces"를 가질 수 있습니다. – sandbox

+0

편집, 약간 개선되었습니다. – Jivings

+0

@sandbox 그래서 공백으로 시작하니? 다른 문자 나 숫자는 없습니까? – Jivings

0

keypress 이벤트를 사용하면 백 스페이스 키가 캡처되지 않으므로 keyup을 사용해야합니다. 키의 ascii 값을 얻으려면 다음을 사용할 수 있습니다.

function usrInp(evt) { 
    var char = (evt.which) ? evt.which : event.keyCode 
    return String.fromCharCode(char).match(/^[A-Z0-9 _]*$/); 
}