[javascript] JavaScript에서 숫자가 아닌 문자를 문자열에서 제거

JavaScript / ECMAScript를 사용하여 문자열에서 숫자가 아닌 문자를 모두 제거하려는 DOM이 아닌 시나리오를 고려하십시오. 범위 내에있는 모든 문자를 0 - 9유지해야합니다.

var myString = 'abc123.8<blah>';

//desired output is 1238

일반 JavaScript로 어떻게 이것을 달성 할 수 있습니까? 이는 DOM 이외의 시나리오이므로 브라우저 및 키 누르기 이벤트와 관련된 jQuery 및 기타 솔루션은 적합하지 않습니다.



답변

숫자가 아닌 모든 문자와 일치하는 속기 문자 클래스 인 .replace정규식으로 문자열의 메소드를 사용하십시오 \D.

myString = myString.replace(/\D/g,'');


답변

부동 소수점에 점을 남기기 위해 이것이 필요하다면 이것을 사용하십시오.

var s = "-12345.50 €".replace(/[^\d.-]/g, ''); // gives "-12345.50"


답변

스크립트 구현에서 지원하는 경우 정규식을 사용하십시오. 다음과 같은 것 :

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


답변

RegExp를 사용하여 숫자가 아닌 모든 문자 를 바꿀 수 있습니다 .

var myString = 'abc123.8<blah>';
myString = myString.replace(/[^\d]/g, ''); // 1238


답변

다음과 같은 내용이 있습니다.

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


답변

시험

myString.match(/\d/g).join``

코드 스 니펫 표시


답변

Angular / Ionic / VueJS에서 방금 간단한 방법을 찾았습니다.

stripNaN(txt: any) {
    return txt.toString().replace(/[^a-zA-Z0-9]/g, "");
}

보기에서의 사용법 :

<a [href]="'tel:'+stripNaN(single.meta['phone'])" [innerHTML]="stripNaN(single.meta['phone'])"></a>