Нашёл такой способ , но это просто писец длинно !
jQuery('#my_link a').click(function(event) { var href_link = jQuery(this).attr('href'); var link_test = substr(href_link, 5,-1); var link_test2 = explode( ',', link_test ); alert(link_test2); return false; }); function explode( delimiter, string, limit ) { var emptyArray = { 0: '' }; // third argument is not required if ( arguments.length < 2 || typeof arguments[0] == 'undefined' || typeof arguments[1] == 'undefined' ) { return null; } if ( delimiter === '' || delimiter === false || delimiter === null ) { return false; } if ( typeof delimiter == 'function' || typeof delimiter == 'object' || typeof string == 'function' || typeof string == 'object' ) { return emptyArray; } if ( delimiter === true ) { delimiter = '1'; } if (!limit) { return string.toString().split(delimiter.toString()); } else { // support for limit argument var splitted = string.toString().split(delimiter.toString()); var partA = splitted.splice(0, limit - 1); var partB = splitted.join(delimiter.toString()); partA.push(partB); return partA; } } function substr( f_string, f_start, f_length ) { f_string += ''; if(f_start < 0) { f_start += f_string.length; } if(f_length == undefined) { f_length = f_string.length; } else if(f_length < 0){ f_length += f_string.length; } else { f_length += f_start; } if(f_length < f_start) { f_length = f_start; } return f_string.substring(f_start, f_length); } |
если ты уверен, что ни одна из параметров не приходит через параметры запроса (или не генерируется на основе параметров запроса), то можно просто добавить в строку нужные значения
s.replace(/\)/, value1+','+value2+')') а потом eval либо определить функцию и параметры можно с помощь такого регэкспа: /^(\w+)\(([^)]*)\)$/, а разбить строку параметров на составляющие можно с помощью split(',') p.s. я бы скорее пользовался родными средствами javascript, чем портом php-функций p.p.s. а ты думаешь, когда jQuery подключаешь, то там меньше кода? |
Цитата:
Цитата:
Но в моём случем получается , что я знаю JavaScript , а он меня нет :))) |
Цитата:
что возвращает можно посмотреть, например, на вкладке Console Firebug'а split - тоже метод строки, возвращает массив элементов после разбиения подробное описание можно найти, например, здесь - http://javascript.ru/ecma/part15#a-15.5.4 (15.5.4.10, 15.5.4.14) или здесь: https://developer.mozilla.org/En/Cor...s/String/Split https://developer.mozilla.org/en/Cor...s/String/match |
Попробовал так
jQuery('#my_link a').click(function(event) { var href_link = jQuery(this).attr('href'); var title_link = jQuery(this).attr('title'); var link_this = this; var re = /^(\w+)\(([^)]*)\)$/; var found = href_link.match(re); alert(found); return false; }); Алертом выводит vote(2,23,1,'2750ee0fc11',-10),2,23,1,'2750ee0fc11',-10 Чтобы удалить не нужное мне теперь vote(2,23,1,'2750ee0fc11',-10),, надо еще что то использовать ? |
alert (а точнее преобразование в строку) предоставляет не очень подробную информацию. По идее это должен был быть массив из 3х элементов: ["vote(2,23,1,'2750ee0fc11',-10)","vote", "2,23,1,'2750ee0fc11',-10"]
|
Цитата:
дальше больше :) jQuery('#my_link a').click(function(event) { var href_link = jQuery(this).attr('href'); var title_link = jQuery(this).attr('title'); var link_this = this; var re = /^(\w+)\(([^)]*)\)$/; var found = href_link.match(re); alert(found); var myString = ""+found+""; var splits = myString.split(",", 30); alert(splits); return false; }); Второй алерт выдаёт точно тоже что и первый . И еще , даже если всё ок то как мне обратиться ,скажем, ко второму элементу массива ? |
found - массив найденных вхождений. Элемент 0 - соответствие всему шаблону (^(\w+)\(([^)]*)\)$), 1 - первому подшаблону (\w+), 2 - второму ([^)]*)
Массив преобразуется в строку следующим образом: [1,2,3] -> '1,2,3'. Если написать в строке браузера 'javascript:[1,2,3]' то мы это увидим в действии. Это по поводу ""+found+"" Для чего ты используешь split(',') ? И зачем тебе, кстати, лимит (30) ? Цитата:
array[1] |
Цитата:
vote(2,23,1,'2750ee0fc11',-10) и выдаёт vote(2,23,1 Яж говорю я в JavaScript новичёк. |
Цитата:
когда придумаешь, зачем тебе лимит - тогда можешь использовать |
Часовой пояс GMT +3, время: 18:02. |