2016-06-23 3 views
-2

나는 아래의 코드를 시도하는 숫자 타입 입력 상자에 대한 유효성 검사를 추가하려고를 사용하여 서명, 다른 문자 다음 숫자와 교체 '-'정규식 표현

this.value = this.value.replace(/[^\d.]/ig,''); 
this.value = this.value.replace(/[^0-9.]/ig,''); 
this.value = this.value.replace(/[^0-9\.\-]/g,''); 
this.value = this.value.replace(/(?!-)[^0-9.]/g,''); 
this.value = this.value.replace(/[^0-9\.-]/g,''); 

가 사실은 내가 교체 할 공백으로 입력 된 모든 문자 (숫자, '.'및 '-'제외)를 입력 상자에 입력하십시오. 그러나 위의 어느 것도 나를 위해 일하고 있지 않습니다. 도와주세요.

감사와 안부,

네하

+1

'/ [^ 0-9 \. \ -] /'절대 작동합니다 : https://jsfiddle.net/RoryMcCrossan/ym74ypo8/. 문제는 Regex 교체 바깥에 있어야합니다. 보다 완벽한 샘플 코드를 보지 않고는 도움을 드릴 수 없습니다. –

+0

'this'가 당신이 생각하는 것을 말하는 것이 확실합니까? –

+0

'this'는 jQuery 콜백 안에 있습니까? 그러면 $ (this) .val ($ (this)) .val(). replace ('/ [^ 0-9 -.]/g', ''))'와 같은 것이 필요할 것입니다. – eisbehr

답변

1

사용이 : 내부의 시작 또는 괄호에

value.replace(/[^0-9-.]/g, ''); 

^ 의미는 "모두를 교체하지만 그가 문자". 바이올린은 here을 참조하십시오. '기호 - 내가 사용했던

+1

이미 시도한'/ [^ 0-9 \. \ -] /'이 대답과 다른 것은 아닙니다. –

+0

실례가 있습니까? 그것은. 그래서, 정규 표현식이 정확하다면, 다른 잘못된 것이있을 수 있습니다. 그러나 이것이 질문이었습니다. 그리고 이것은 답입니다. :) – eisbehr

+1

그들은 질문에서 동일한 정규 표현식을 사용합니다. 그렇다면 왜 이것이 도움이 될까요? 분명히 문제는 다른 곳에서 발생하기 때문에 더 많은 정보를 추가하지 않는 한이 질문은 논제 거리가됩니다. –

0

입력 유형은 숫자 ' '

는 따라서는 허용하지 않았다'입니다.

텍스트로 변경되었습니다.