javascript - 正则表达式在 javascript 中匹配 SVG 路径数据

标签 javascript regex path svg

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结果,但这应该不会太难。

另外,尽量不要将变量命名得如此无意义(stringregexarray)。在我看来,这比将它们命名为 abc 更糟糕。

关于javascript - 正则表达式在 javascript 中匹配 SVG 路径数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4681800/

相关文章:

c# - 为什么这个无效的文件路径//有效?

PATH 环境变量,我做错了什么?

javascript - Firebase 身份验证异步等待

javascript - 一个简单的倒计时器,显示小时、分钟、秒

javascript - eval( arguments.callee ) 的结果;

regex - 如何将语言集表示法转换为正则表达式?

swift - 避免以逗号分隔的双字母单词列表中的重复项

javascript - 将 ID 替换为名称

python - 正则表达式根据缩写名的大写字母和句点组合进行拆分

Android - 如何正确绘制带有路径的箭头?