나는 숫자 데이터 만 유효성을 검사해야하는 텍스트 상자 (가격)가 있습니다. 또한 나는 0과 같은 앞자리 숫자 (예 : 01)를 허용 할 수 없습니다. 그래서 replace 메소드를 정규식으로 사용했습니다. 선행 제로를 교체jquery 바꾸기 함수가 IE에서 이상하게 작동합니다
$("#txtPrice").keyup(function(){
var text=$(this).val();
$(this).val(text.replace(/[^\d\s\.]/,""));
});
, 나는
$("#txtPrice").keyup(function(){
var text=$(this).val();
$(this).val(text.replace(/^0+/, ''));
});
그것은 파이어 폭스에서 잘 작동을 사용하지만, IE에서 이상하게 동작 : 대체 문자를 들어이 사용되었다.
숫자 앞에 새 숫자를 추가하면 새 숫자가 번호 끝에 추가됩니다. 예를 들어, "56"을 "156"으로 편집하면 "561"을 형성하는 끝에 숫자 1이 추가됩니다. 임의의 숫자가 앞에 놓 이도록 시도되면 실제로 텍스트 필드의 끝에 추가됩니다. 이 문제를 어떻게 해결할 수 있습니까?
이것은 정규식 대체가 아닌 다른 줄에서 문제가 될 가능성이 큽니다. "경고 (텍스트);를 입력하면 어떻게됩니까? 그 두 줄 사이에? – pms1969
나는 주어진 인스턴스에 하나의 keyup 함수 만 바인딩하는 것이 이상적이라고 생각한다. 아마도 당신이 찾고있는 행동을 얻기위한 해결책은 아니지만, 더 쉽게 진행되고있는 것을 파악하게 될 것입니다. – veeTrain
안녕하세요. 내 답변이 당신을위한 효과적인 해결책 이었으면, 답변으로 받아들이거나 귀하의 상황에 맞지 않는 이유를 알려주십시오. 감사합니다 – veeTrain