2012-12-20 5 views
3

아래 코드와 같은 ID를 가질 수있는 행을 가져 오려고합니다 (asp.net webform에서 생성).자바 스크립트에서 정규 표현식을 사용하여 숫자 만 가져 오는 방법

숫자를 캡처 할 수 있는지 알아 보려면 아래 자바 스크립트를 사용하고 있습니다.

if (e.id.indexOf("_tbxMinute") != -1) {       
    if (parseInt(e.value) > 59) { 
     var cid = e.id; 
     var patt = '\d+' 
     var test = cid.match(patt) 
     alert(test) 
     } 

은 지금까지 나는 을 얻고있다. 컨트롤 ID에서 숫자를 가져 오는 방법은 무엇입니까? 당신은이 같은 것을 사용할 수

+0

'e.id.indexOf ("_ tbxMinute")'또는'e.id.indexOf ("_ tbxHour")'? –

+0

@Mario, 나는 방금 실수를 수정했다. – Richard77

답변

3

그것은 (jsfiddle에서 내 시도는했다) 당신은 어떤 비 숫자 문자를 제거하려면이 코드를 사용할 수 있습니다

0

을 돕는

감사 :

/contentMain__lvTSEntry__tbxHour_(\d+)/ 

그것은 숫자를 캡처 :

> var regex = /contentMain__lvTSEntry__tbxHour_(\d+)/; 
> regex.exec("contentMain__lvTSEntry__tbxHour_1")[1] 
"1" 

을 다른 방법으로, 당신은 단지 전체 정규식으로 /(\d+)/을 사용할 수 있습니다. 당신이 var patt = '\d+'에서 var patt = '\\d+'에 패턴 문자열을 변경하는 경우

0

"contentMain__lvTSEntry__tbxHour_1".replace(/\D/g,'') 
0

당신은 사용할 수 있습니다 작동합니다 어레이의 모든 번호를 반환이 기능 :

function returnNumbers(string){ 
    return string.match(/\d+/g); 
} 

예 :

> returnNumbers('123asd123') 
["123", "123"] 

> returnNumbers('contentMain__lvTSEntry__tbxMinute_1') 
["1"] 
0

정규 표현식으로 patt를 사용하는 경우, 당신은 RegExp 유형으로 선언해야합니다 \d 번역되어 있기 때문에,

var patt = /\d+/;

patt instanceof RegExp; // true

var patt = '\d+'이 패티는 d+ 것을 의미한다 d으로 \은 이스케이프 문자입니다. 그런 다음 대신에 matchd+이됩니다.

관련 문제