2013-06-15 5 views
2
$('#price').keyup(function(){ 
     $('#price').val($('#price').val().replace(/[_\W]+/g, "-")); 
}) 

http://jsfiddle.net/2KRHh/6/에서보기 :정규 표현식 - 점을 제외하고 특수 문자 대체

이렇게하면 특수 문자가 제거되지만 점으로 대체되지 않도록 지정할 수 있습니까? 대신 정규식에 대한

+2

이것은 아마도 당신이 원하는 것을 달성 할 수있는 좋은 방법이 아니다. 마우스를 사용하여 일부 특수 문자를 복사하여 붙여 넣으면 키 입력 기능이 실행되지 않습니다. – bozdoz

+1

바꾸려는 문자가 아닌 _keep_ 문자를 나열하도록 정규식을 변경할 수 있습니다.^연산자와 결합하십시오. – nnnnnn

+0

거의 중복됨 : [stackoverflow.com/questions/9311258/how-do-i-replace-special-characters-with-regex-in-javascript](http://stackoverflow.com/questions/9311258/how-do- i-replace-special-characters-with-regex-in-javascript) – OzrenTkalcecKrznaric

답변

3

사용이 :

/[^\w.]|_/g 

바에서 다음 중 하나입니다 수치 알파 (언더 포함) 또는 점, 또는 것을 하지 모든 문자를 읽습니다.

갱신
그러나 이것은 아마도 좀 더 읽을 수 :

/[^0-9a-zA-Z.]/g 
+0

정규 표현식에 "\"를 추가한다고 생각합니다 :/([^ \ w.]) | _/g' 또한, 왜 '[^ \ w.]'문자 클래스 주위에 캡쳐 그룹을 추가 했습니까? – sigpwned

+0

@sigpwned : 예, 감사합니다. 편집 됨. – Faust

+0

하지만 숫자도 바꿉니다. 이것은 숫자 0-9와 숫자 –