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";
)
非常感谢
最佳答案
根据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
)。在我看来,这比将它们命名为 a
、b
或 c
更糟糕。
关于javascript - 正则表达式在 javascript 中匹配 SVG 路径数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4681800/