2013-01-20 80 views
0

我需要使用jquery從字符串中查找路徑信息並將結果推送到數組中。jQuery查找字符串中的模式

字符串輸出看起來像;

"var rsr = Raphael('rsr', '270', '266'); 
var path_a = rsr.path('M144.869,199c0,7.659-5.479,13.139-13.14, 
13.139 c-7.659,0-14.598-5.479-14.598-13.139s6.209-13.139,13.869- 
13.139S144.869,191.341,144.869,199z'); path_a.attr({fill: 'non .... etc" 

我需要rsr.path檢索的路徑信息,每一次出現與();

我該如何去實現這一目標?使用$ .each我的字符串與正則表達式?

感謝凸輪

+1

可以轉換成字符串使用'的eval()''不過的eval()'不好JS,可能會更好找出爲什麼腳本是在字符串中的第一個看看它是不是可以改成JSON,或者只是js – charlietfl

回答

0

我發現這個工作..

$(document).ready(function(){ 

    $('form.svg-convert').submit(function(event){ 

     var content = $(this).find('textarea').val(); 
     process(content); 

     event.preventDefault(); 
    }) 
}) 


var process = function(c){ 

    var content = c, 
     paths = []; 

    var contentSplit = content.split('path('); 
    contentSplit.shift(); 

    $.each(contentSplit,function(i,v){ 

     var path = v.split(')'); 
     path = path[0]; 
     paths.push(path); 

    }); 

} 
0

的JavaScript可以讓你用正則表達式做到這一點:

var s = " var rsr = Raphael('rsr', '270', '266'); var path_a = rsr.path('M144.869,199c0,7.659-5.479,13.139-13.14, 13.139 c-7.659,0-14.598-5.479-14.598-13.139s6.209-13.139,13.869- 13.139S144.869,191.341,144.869,199z'); path_a.attr({fill: 'non .... etc"; 

var regex = /M144\.869(.+?)869,199z/g; 
var matches = regex.exec(s); 

比賽[0],包含捕獲物組。

+1

Ruby!== JavaScript – VisioN

+0

Hey Kyle,謝謝你的回覆,我已經重新回答了這個問題,道歉有點誤導。 – Cam