2011-01-13 299 views
1
var string = "M-84.1487,-15.8513 a22.4171,22.4171 0 1 0 0,31.7026 h168.2974 a22.4171,22.4171 0 1 0 0,-31.7026 Z"; 
var regex = "[a-zA-Z][0-9, /-/.]*"; 
var array = string.match(regex); 

谁能帮助我与我的正则表达式匹配个人说明资讯(array[0] == "M-84.1487,-15.8513"; array[1] == "a22.4171,22.4171 0 1 0 0,31.7026";正则表达式在JavaScript中匹配SVG路径数据

非常感谢

回答

2

按照BNF description可以识别作为指令一封信,后面是任何不是字母的东西。

var pathData = "M-84.1487,-15.8513 a22.4171,22.4171 0 1 0 0,31.7026 h168.2974 a22.4171,22.4171 0 1 0 0,-31.7026 Z"; 
var pathSegmentPattern = /[a-z][^a-z]*/ig; 
var pathSegments = pathData.match(pathSegmentPattern); 

当然,您可能想要trim的结果,但这不应该太难。

也尽量不要给你的变量命名如此无意义(string,regex,array)。在我看来,这比命名他们abc更糟糕。

+1

谢谢,我会试试这个。变量只是为了这篇文章而命名:) – Tom 2011-01-13 15:45:30