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, '' );
답변
답변
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>