2014-01-27 2 views
0

Привет, я хочу, чтобы все переменные в цикле jquery включались в функцию jquery для нажатия соответствующего имени переменной в массив. Код приведен нижеПетля через все определенные переменные jquery

function pushallvariables() 
{ 
    var list = []; 

    var name = /^[A-Za-z\s.]+$/; 
    var general = /^[A-Za-z0-9\s.\-\/]{2,20}$/; 
    var email = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/; 
    var digit = /^[+]?[0-9\s]+$/; 

     list.push('name'); 
     list.push('general'); 
     list.push('email'); 
     list.push('digit'); 
} 

Я хочу изменить эту функцию в

function pushallvariables() 
{ 
    var list = []; 

    var name = /^[A-Za-z\s.]+$/; 
    var general = /^[A-Za-z0-9\s.\-\/]{2,20}$/; 
    var email = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/; 
    var digit = /^[+]?[0-9\s]+$/; 

    for each(variable as var) 
    { 
     list.push(var.name); 
    } 
    } 

Но модифицированная функция не является правильным. Как я могу написать функцию?

+0

AFAIK нет, вы не можете сделать это ... вы можете создать объект с этими переменными являются ключами пары значений, а затем итерации этого объекта –

+0

вы с ума сошли? 'var' - это ключевое слово javascript. Вы не можете использовать его как переменную –

+0

@ Ashish Kumar. Я знаю. Вот почему я уже упоминал, что измененная функция неверна. Я просто хочу выразить то, что нужно реализовать, это только. –

ответ

4

Лучший и ясный способ сделать это:

var list = {}; 

list.name = /^[A-Za-z\s.]+$/; 
list.general = /^[A-Za-z0-9\s.\-\/]{2,20}$/; 
list.email = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/; 
list.digit = /^[+]?[0-9\s]+$/; 

без петель и т.д.

+0

Спасибо, hsz. Ваш ответ работал отлично для моего случая и является лучшим и понятным способом. –

Смежные вопросы