[javascript] 자바 스크립트를 사용하여 숫자 만 반환하는 정규식

“something12″또는 “something102″와 같은 문자열이있는 경우 자바 스크립트에서 정규식을 사용하여 숫자 부분 만 반환하는 방법은 무엇입니까?



답변

정규식 :

var numberPattern = /\d+/g;

'something102asdfkj1948948'.match( numberPattern )

내부에 ‘102’와 ‘1948948’이라는 두 개의 요소가 포함 된 배열을 반환합니다. 원하는대로 작동하십시오. 일치하지 않으면 null을 반환합니다.

그들을 연결하려면 :

'something102asdfkj1948948'.match( numberPattern ).join('')

복잡한 소수를 다루지 않는다고 가정하면 충분하다고 생각합니다.


답변

숫자가 아닌 모든 문자 ( \D또는 [^0-9])를 제거 할 수도 있습니다 .

let word_With_Numbers = 'abc123c def4567hij89'
let word_Without_Numbers = word_With_Numbers.replace(/\D/g, '');

console.log(word_Without_Numbers)


답변

소수점 이하 자릿수와 빼기 부호가있는 숫자의 경우이 코드를 사용합니다

 var NUMERIC_REGEXP = /[-]{0,1}[\d]*[.]{0,1}[\d]+/g;

'2.2px 3.1px 4px -7.6px obj.key'.match(NUMERIC_REGEXP)
// return ["2.2", "3.1", "4", "-7.6"]

업데이트 :-7/9/2018

정규식을 시각적으로 편집 할 수있는 도구 인 JavaScript Regular Expression Parser & Visualizer를 찾았습니다 .

최신 정보:

디버거 정규 표현식을 사용할 수있는 또 하나의 방법이 있습니다 : 온라인 정규식 테스터 및 디버거 .

최신 정보:

다른 하나는 RegExr 입니다.

최신 정보:

정규 표현식 정규 표현식 Pal .


답변

숫자 만 원하는 경우 :

var value = '675-805-714';
var numberPattern = /\d+/g;
value = value.match( numberPattern ).join([]);
alert(value);
//Show: 675805714

이제 숫자가 합쳐집니다.


답변

문자열에서 숫자를 얻고 싶다고 생각합니다. 이 경우 다음을 사용할 수 있습니다.

// Returns an array of numbers located in the string
function get_numbers(input) {
    return input.match(/[0-9]+/g);
}

var first_test = get_numbers('something102');
var second_test = get_numbers('something102or12');
var third_test = get_numbers('no numbers here!');

alert(first_test); // [102]
alert(second_test); // [102,12]
alert(third_test); // null


답변

주어진 답변이 실제로 귀하의 질문과 일치하지 않으므로 후행 번호 를 의미합니다 . 또한 문자열을 다시 얻는다는 것을 기억하십시오. 실제로 숫자 가 필요한 경우 결과를 캐스트하십시오.

item=item.replace('^.*\D(\d*)$', '$1');
if (!/^\d+$/.test(item)) throw 'parse error: number not found';
item=Number(item);

웹 페이지에서 숫자 항목 ID를 처리하는 경우 코드에서 유용하게을 수락하여을 (또는 첫 번째 상위) Element에서 숫자를 추출 할 수 있습니다 . 당신이 편리 하다면 , 당신 도 그로부터 얻을 수 있습니다.ididEventElement


답변

var result = input.match(/\d+/g).join([])