>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 문자열에서 숫자를 추출하는 방법은 무엇입니까?

JavaScript에서 문자열에서 숫자를 추출하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-06 10:45:11741검색

How to Extract Numbers from Strings in JavaScript?

JavaScript의 문자열에서 숫자 추출: 종합 가이드

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.