“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
에서 숫자를 추출 할 수 있습니다 . 당신이 편리 하다면 , 당신 도 그로부터 얻을 수 있습니다.id
id
Event
Element
답변
var result = input.match(/\d+/g).join([])