입력 필드를 살균 처리하고 프로세스에서 수동으로 캐럿 위치를 가져오고 설정하는 중입니다. 이 문자가 실제로 소독 얻을 않는 경우를 제외하고는 잘 작동정규식에서 많은 문자를 어떻게 대체합니까?
function check(element) {
var charPosition = getCaretPosition(element);
$(element).val(sanitize($(element).val()));
setCaretPosition(element, charPosition);
}
function sanitize(s) {
return s.replace(/[^a-zA-Z0-9\s]/g, '');
}
<input type="text" onkeyup"check(this)">
그리고 자바 스크립트 ..., 내 캐럿 위치가 하나 꺼져 : 일부 추상화로, 여기에 기본적인 생각입니다. 기본적으로 sanitize 함수가 실제로 문자를 대체했는지 (그리고 어떤 인덱스에서) 그래서 필요한 경우 charPosition을 조정할 수 있는지 확인하는 방법이 필요합니다. 어떤 아이디어?
이미 jQuery를 사용하는 경우는, 이유가 없다 귀하의 이벤트 처리기를 애매하게 첨부하십시오. 대신 JavaScript에서 onkeyup even 처리기를 첨부해야합니다. –
사실, 이유가 있습니다. 이것은 IE6을 대상으로하는 대규모 웹 애플리케이션 용이며 (불행히도) jQuery document.ready (일부 페이지에서는 4 초 이상)에 큰 성능이 나타납니다. 그래서 나는 가능한 한 많은 자료를 document.ready에서 꺼내려고합니다. (또한 자바 스크립트가 필요한 인트라넷 앱이므로 obtrusiveness는 문제가되지 않습니다.) – macca1