2013-01-31 2 views
-1

I이 var_111, var_222, var_132, var_122bb 같은 스크립트 변수의리스트를 가지고 ... 밑줄 후자바 스크립트 정규식 추출하는 변수

스트링은 원격 서버로부터 응답, 그래서 미리들을 지정할 수 없다 .

모든 var_ * 변수를 반복하는 for 루프를 실행하고 싶습니다. 예를 들어 console.log에 모든 변수가 있습니다.

나는 그것이 정규식으로 할 수 있다고 생각하지만, 나는 아직 그것을 배우지 못했다. 누군가가 도울 수 있기를 바랍니다! 아래의 설명을 바탕으로

+1

이것은 정말 나쁜 생각처럼 보입니다. 실제 상황은 무엇입니까? – Ryan

+0

* * 많은 변수가 있습니다. 그렇다면 어떻게/어디에서? 또는 * if *와 같은 많은 변수를 원한다. 왜 그렇습니까? (Post context.) –

+1

서버 응답이 어떻게 보이는지 보여 줄 수 있습니까? – Dancrumb

답변

1
str.match(/var_\d+/g).forEach(function(v) 
{ 
    console.log(v); // v here is a variable such as var_111 
}); 

, 실제로 무슨 일이 일어나고 있는지 가정하면 서버가 당신이 원하는 이름이 통제 할 수없는 글로벌 변수의 무리입니다 설정되어 있습니다 :

for (var k in window) 
    if (window.hasOwnProperty(k) && k.match(/^var_\d+$/)) 
     console.log(k) 

이렇게하면 모든 전역 변수를 반복하고 정규식과 비교하여 var _ ### 유형의 변수를 얻은 다음 출력합니다. window[k]으로 값을 얻을 수 있습니다. 이것은 모든 전역 변수가 실제로 window 개체의 속성이기 때문에 가능합니다.

+0

그리고'str'은 무엇입니까? – Dancrumb

+0

'var str = "var_111, var_222, var_132, var_122bb"와 같은 문자열; 이것은 여러분이 서버에서 얻는 말입니다. – Plynx

+0

많은 코드를 제공해 주셔서 감사합니다! 하지만 불행히도 var_ 전에 서버 응답을 얻기 전에 문자열을 모르기 때문에 var str을 미리 지정할 수 없습니다. – user2018232