2013-03-14 3 views
0
document.querySelectorAll("table[id^='Table']"); 

이 코드는 Table의 ID를 가진 모든 테이블을 선택합니다. 하지만 ID가 Table2 OR Table7 (또는 다른 숫자) 인 표를 선택하고 싶습니다. 정규식을 사용하여 이것을 수행하는 방법?자바 스크립트에서 여러 개의 정규식 일치

편집 : 내 경우에는 jQuery를 사용할 수 없습니다.

+0

JQuery와는 아니다 내 사건에 적용 – Adige72

+1

질문에있는 코드가이 작업을 수행해야합니다. 왜 그걸 사용하지 않니? – 11684

+0

또한 숫자 매치를 추가하고 regex – Adige72

답변

2
function getTables(tableNumbers) { // Usage: getTables([2, 7]) will return the tables with the ID 'Table2' and 'Table7'. (You can add more numbers; [2,7,3,6]) 
    var allTables = document.querySelectorAll("table[id^='Table']"); 
    var tablesWeWant = []; 
    for (var i = 0; i < allTables.length; i++) { 
     if (allTables[i].id.match(/Table[0-9]/)) { 
      tablesWeWant.push(allTables[i]); 
     } 
    } 
    for (var i = 0; i < tablesWeWant.length; i++) { 
     if (!tableNumbers.contains(tablesWeWant[i].id.substr(id.length - 1))) { 
      tableNumbers.splice(i, 1); 
     } 
    } 
    return tablesWeWant; 
} 

이것은 ID가 일치 정규식 /Table[0-9]/ 가변 tableNumbders 포함 디지트로 끝나는 모든 테이블을 반환한다.

면책 조항 : 저는 정규 표현식 전문가가 아닙니다.

편집 :
은, 위의 코드를 조금 너무 오래되었습니다 몇 번을 편집 한 후에 그래서 나는 이런 식으로 재 작성 :

function getTables(tableNumbers) { 
    var tablesWeWant = []; 
    for (var i = 0; i < tableNumbers.length; i++) { 
     tablesWeWant.push(document.querySelector("#Table" + tableNumbers[i])); 
    } 
    return tablesWeWant; 
} 

두 번째 방법은 작동합니다 http://jsfiddle.net/qQ7VT/1/

+0

감사합니다. – Adige72

+0

방금 ​​정규 표현식을 조정했습니다. (한 자리 숫자와 일치하도록'+ '를 제거했습니다.) @ Adige72 – 11684

+0

문제가 있습니다. 'tablesWeWant'도 비어있어 모두 'Table *'을 선택합니다 – Adige72