gpt4 book ai didi

javascript - 正则表达式:提取 SVG 路径 d 属性

转载 作者:行者123 更新时间:2023-12-01 16:09:55 25 4
gpt4 key购买 nike

我有一个包含一个 SVG 路径的源:

<svg xmlns="http://www.w3.org/2000/svg" stroke="red" fill="grey"><path d="M 10 10 L 100 100 Q 200 50 300 100 A 80 50 20 1 0 400 600 Z" fill="none" stroke="red" stroke-width="5" /></svg>

也可以单引号

<svg xmlns="http://www.w3.org/2000/svg" stroke="red" fill="grey"><path d='M 10 10 L 100 100 Q 200 50 300 100 A 80 50 20 1 0 400 600 Z' fill="none" stroke="red" stroke-width="5" />

我想要

M 10 10 L 100 100 Q 200 50 300 100 A 80 50 20 1 0 400 600 Z

我试过了(JS)

var result = svg_tag.match(/<path(.*?)>/g).map(function(val){
return val.replace(/<path d="/g,'');
});

但它返回

[
'M', '10',
'10', 'L',
'100', '100',
'Q', '200',
'50', '300',
'100', 'A',
'80', '50',
'20', '1',
'0', '400',
'600', 'Z"',
'fill="none"', 'stroke="red"',
'stroke-width="5"', '/>'
]

最佳答案

[\w]{10,}

RegExp 匹配任何长度至少为 10 个字符且仅包含字母、数字、空格和下划线的子字符串。

const regex = /[ \w]{10,}/;

const tag1 = '<svg xmlns="http://www.w3.org/2000/svg" stroke="red" fill="grey"><path d="M 10 10 L 100 100 Q 200 50 300 100 A 80 50 20 1 0 400 600 Z" fill="none" stroke="red" stroke-width="5" /></svg>';
const tag2 = `<svg xmlns="http://www.w3.org/2000/svg" stroke="red" fill="grey"><path d='M 10 10 L 100 100 Q 200 50 300 100 A 80 50 20 1 0 400 600 Z' fill="none" stroke="red" stroke-width="5" />`;

console.log(tag1.match(regex)[0]);
console.log(tag2.match(regex)[0]);

关于javascript - 正则表达式:提取 SVG 路径 d 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63013119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com