<span style = "font-family : arial, helvetica, sans-serif; 배경색 : RGB (255, 255, 255);"> 어제 프로젝트 검색에서 오류가보고되었습니다. 고통은 생산 도서관에서 나왔습니다. 검색 할 때 사용자가 특수 문자를 입력했기 때문에 로그를 보았습니다. 사용자가 입력 한 데이터를 직접 필터링하고 특수 문자를 제거하는 가장 빠른 방법을 얻을 수있는 방법은 없습니다.
일부 특수 캐릭터는 배경으로 전달되어 오류가 발생합니다. SQL에 주입 될 수 있으므로 근본적으로 가로 채 웁니다.
입력이 특수 문자를 입력하는 것을 금지하는 방법에 대해 논의 해 봅시다.
방법 1 : 가치 값을 얻은 후에는 전달하기 전에 처리하십시오.
함수 stripScript (value) {var pattern = new regexp ( "[`~!@#$^&*() = | {} ':;', // [//]. rs+s.substr (i, 1) .replace (Pattern, '');};이 기능을 직접 호출하십시오.
방법 2 : 가장 근본적인 방법은 사용자가 특수 문자를 입력 할 수 없도록 프롬프트하는 것입니다.
함수 showKeypress (EVT) {EVT = (EVT)? evt : window.eventreturn checkSecifickey (evt.keyCode);} 함수 checkSpecifickey (keycode) {var specialKey = "[`~!##$^&*() = | {} ':;', // [//]. realkey = string.fromcharcode (keycode); var flg = false; flg = (specialKey.indExof (realKey)> = 0); if (flg) {// alert ( '특수 문자를 입력하지 마십시오 :' + realKey); retud true.onkeypress = showkeypress;사용 : 입력 제어에 이벤트 추가는 전혀 응답하지 않습니다.
약간의 문제인 것 같습니다. 중국 상태에는 응답이 없습니다. 무슨 일이 일어나고 있는지 모르겠으므로 다른 것을 찾았습니다.
방법 3 : OnkeyUp 이벤트를받은 후에는 방법과 유사하게 일치합니다.
함수 validateValue (textbox) {var delegalString = "[`~!#$^&*() = | {} ':;', // [//]. <>/? ~!#¥… textbox.value.charat (index); if (delegalstring.indexof (s)> = 0) {s = textboxValue.SubString (0, index); textbox.Value = s;}}사용 : onkeyup = "validateValue (this)"입력 후 즉시 사라집니다. 사용자는 내가 입력 한 것이 입력 후 사라질 것이라고 말하는 것임을 알 수 있습니다. 단점은 연속 입력이 사라지지 않는다는 것입니다 (잠깐만).
위의 다음을 중화시키는 가장 멋진 방법
방법 4 : 컨트롤에서 직접 사용하십시오
// <입력/[/w]/g, '') "/[^/d]/g, '')") "> // 제어 입력 상자는 텍스트 나 숫자 만 입력 할 수 있으며 특수 문자는 다음 문자를 입력 할 수 없습니다. (예 :!@#$%^&*등) <br>
이 방법 사용자는 입력이 즉시 사라질 것임을 알 수 있습니다. 메소드 3에 대해서도 마찬가지이지만 연속 입력은 유효합니다.
입력 한 캐릭터가 특별한 캐릭터가 될 수 없다고 판단하려면 다음 JS를 살펴 보겠습니다.
1. 문서 .OnKeypress 이벤트는 캐릭터를 입력 할 때 확인입니다. 서신 showkeypress는 검증 중에 실행됩니다. True를 반환 할 때 입력 할 수 있고 False를 입력 할 수 없습니다.
2. EVT = (EVT)? EVT : Window.Event, 키보드를 누르면이 이벤트가 생성되어 입력 한 값을 얻습니다 (키보드의 키 코드입니다).
var realkey = string.fromcharcode (키 코드);
string.fromcharCode () 메소드는 키보드 값 (키 코드)을 실제로 입력 한 값으로 변환하는 것입니다.
3. Method SpecialKey.indexof (RealKey) :
.indexof ()는 문자열 메소드입니다. 문자열의 indexof () 메소드는 매개 변수로 전달 된 문자열이 문자열에 나타나는지 여부를 검색합니다. 문자열이 발견되면 문자의 시작 위치를 반환합니다 (0은 첫 번째 문자를 의미하며 1은 두 번째 문자 등을 의미합니다). 발견되지 않으면 -1을 반환합니다
4. var SpecialKey = "#$%/^*/'/"/+";
다음은 탈출 문자가있는 문자열, #, $, %, ^, *, ', ", +는 특별한 기호이며, / 이전에 탈출 해야하는 것입니다.
텍스트 상자에 제한된 입력 특수 기호를 추가하려면 <input type = "text"id = "name"onkeypress = "showkeypress ()">를 사용하십시오.
위의 것은 입력이 특수 문자 입력을 금지하는 입력을 구현하는 4 가지 방법입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!