programing

자바 스크립트 정규식-숫자가 아닌 문자 바꾸기

nasanasas 2020. 12. 1. 08:08
반응형

자바 스크립트 정규식-숫자가 아닌 문자 바꾸기


이것은 작동합니다 :

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

이 간단한 스 니펫은 숫자가 아닌 것은 아무것도없는 것으로 대체합니다.

그러나 소수도 실제입니다. 그래서 마침표를 포함하는 방법을 알아 내려고합니다.

정말 간단하다고 확신하지만 테스트가 작동하지 않습니다.


기간을 탈출 했습니까? var.replace(/[^0-9\.]+/g, '');


뭔가 교체 없는 숫자 것은 뭔가 교체보다 조금 까다 롭습니다 입니다 수 있습니다.

단순히 점을 추가 할 것을 제안하는 사람들은 그 사실을 무시하고 있습니다. 마침표로도 사용되므로 :

This is a test. 0.9, 1, 2, 3됩니다 .0.9123.

문제의 특정 정규식은 목적에 따라 많이 달라집니다. 문자열에 단일 숫자 만있는 경우 다음을 수행 할 수 있습니다.

var.replace(/.*?(([0-9]*\.)?[0-9]+).*/g, "$1")

첫 번째 숫자를 찾아 전체 문자열을 일치하는 숫자로 바꿉니다.


이 시도:

var.replace(/[^0-9\\.]+/g, '');

이 시도:

var.replace(/[0-9]*\.?[0-9]+/g, '');

유효한 소수만 일치합니다 (예 : "1", "1.0", ".5", "1.0.22"제외).


소수와 함께 IP 주소를 포착하지 않으려면 :

var.replace(/[^0-9]+\\.?[0-9]*/g, '');

마침표가 하나 또는 0 인 숫자 만 포착합니다.


이미 많은 정답이 있습니다. 음수 기호도 고려할 필요가 있다는 점을 지적 "\-"하십시오. 음수를 허용하려면 기존 답에 추가하십시오.


이 작업을 수행하는 방법

var numbers = str.gsub(/[0-9]*\.?[0-9]+/, "#{0} ");

ASP.Net 텍스트 상자에서 숫자가 아닌 문자를 멋지고 짧은 인라인으로 대체 :

 <asp:TextBox ID="txtJobNo" runat="server" class="TextBoxStyle" onkeyup="this.value=this.value.replace(/[^0-9]/g,'')" />

원하는대로 정규식 부분을 변경합니다. 많은 사람들이 화살표 키를 사용할 때 커서가 끝으로 곧바로가는 것에 대해 불평하지만, 사람들은 예를 들어 화살표 ... 화살표 ... 화살표 ... 좋아요 ... 백 스페이스 백 스페이스, 새 문자를 입력합니다.


다음은 내가 사용하는 몇 가지 jQuery 입력 클래스 유형입니다.

$("input.intgr").keyup(function (e) { // Filter non-digits from input value.
    if (/\D/g.test($(this).val())) $(this).val($(this).val().replace(/\D/g, ''));
});
$("input.nmbr").keyup(function (e) { // Filter non-numeric from input value.
    var tVal=$(this).val();
    if (tVal!="" && isNaN(tVal)){
        tVal=(tVal.substr(0,1).replace(/[^0-9\.\-]/, '')+tVal.substr(1).replace(/[^0-9\.]/, ''));
        var raVal=tVal.split(".")
        if(raVal.length>2)
            tVal=raVal[0]+"."+raVal.slice(1).join("");
        $(this).val(tVal);
    } 
});

intgr 은 다른 솔루션과 마찬가지로 숫자 만 허용합니다.

nmbr 은 양수 / 음수 십진수 만 허용합니다. 음은 첫 번째 문자, 스트립 (당신이 그것을 필요로하는 경우에 당신이 필터에 "+"추가 할 수 있습니다)이어야 -3.6.23.333-3.623333

나는 nmbr을 올려 놓고 있는데 , 소수점 1 자리와 음수 1 자리 만 유지하는 방법을 찾는 데 지 쳤기 때문에


이것은 -ve 에서 + ve 숫자작동했습니다.

<input type="text" oninput="this.value = this.value.replace(/[^0-9\-]+/g, '').replace(/(\..*)\./g, '$1');">

참고 URL : https://stackoverflow.com/questions/2555059/javascript-regular-expressions-replace-non-numeric-characters

반응형