2013-01-20 83 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