JavaScript에서 문자열로 작업할 때 문자열에서 특정 숫자를 추출해야 하는 경우가 종종 있습니다. 이는 DOM 요소에서 ID를 구문 분석하거나 텍스트 파일에서 숫자 데이터를 추출하는 등 다양한 시나리오에서 발생할 수 있습니다.
구체적인 예: 문자열에서 숫자 추출
여기서는 숫자 2만 추출해야 합니다. 다음 코드를 사용하세요. snippet:
var thestring = $(this).attr('href'); var thenum = thestring.replace(/(^.+)(\w\d+\w)(.+$)/i, '');
경고에 여전히 "#box2"가 반환됩니다. 그 이유는 사용된 정규 표현식이 숫자 앞뒤의 숫자가 아닌 문자를 올바르게 캡처하지 않기 때문입니다.
특정 예에 대한 해결 방법
이 문제를 해결하려면 "#box2"의 특정 예에 대해 다음 코드를 사용할 수 있습니다.
var thenum = thestring.replace(/^\D+/g, ''); // Replace all leading non-digits with nothing
이 정규식은 숫자가 아닌 선행 문자를 모두 제거합니다.
정규식을 사용한 일반 솔루션
더 복잡한 문자열의 경우 더 일반적인 접근 방식은 다음과 일치하는 정규식을 사용하는 것입니다. number:
thenum = "foo3bar5".match(/\d+/)[0] // "3"
이 표현식은 string.
정규식 생성기
더 복잡한 정규식의 경우 아래 제공된 것과 같은 정규식 생성기 도구를 사용할 수 있습니다.
`
함수 getre(str, num) {<br> if (str === num) return "nice try";<br> var res = [</p><pre class="brush:php;toolbar:false">[/^\D+/g, /\D+$/g], // Remove leading/trailing non-digits [/^\D+|\D+$/g], // Remove both leading and trailing non-digits [/\D+/g], // Remove all non-digits [/\D.*/g], // Remove all non-digits from the end /.*\D/g, // Remove all non-digits from the start /^\D+|\D.*$/g, // Remove non-digits from both ends /.*\D(?=\d)|\D+$/g, // Remove non-digits followed by digits or from the end
];
for (var i = 0; i < ; res.length; i )
if (str.replace(res[i], "") === num) return 'num = str.replace(/' + res[i].source + '/g, "")';
반환 "아니요" idea";
}
function update() {
$ = function(x) { return document.getElementById(x) };
var re = getre($('str' ).value, $('num').value);
$('re').innerHTML = "Numex는 다음을 말합니다: <코드>" re "";
}
`:
이 도구는 원래 문자열과 원하는 숫자를 입력할 수 있는 사용자 인터페이스를 제공합니다. 발췌. 그러면 숫자를 추출하는 데 필요한 JavaScript 코드가 표시됩니다.
위 내용은 JavaScript에서 문자열에서 숫자를 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!