从特定字符串中提取特定字符串值

时间:2019-05-13 07:04:24

标签: javascript xml

我有一个字符串,我想使用正则表达式从给定的字符串中提取特定的字符串。我在 string split 的帮助下尝试过。但这需要大量处理才能实现答案。要提取的字符串为emr_cluster

var str = "edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.915;exitY=0.5;exitPerimeter=0;entryX=0;entryY=0.5;entryPerimeter=0;jettySize=auto;orthogonalLoop=1;outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.emr_cluster;fillColor=#F58534;gradientColor=none;";

如何提取emr_cluster并获取值?

2 个答案:

答案 0 :(得分:0)

如果该形状是预期的字符串,并且该形状的来源始终来自“ mxgraph.aws3”。 -然后您可以在该位置拆分-然后在下一个“;”拆分字符以获取您想要的形状值。

var str = "edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.915;exitY=0.5;exitPerimeter=0;entryX=0;entryY=0.5;entryPerimeter=0;jettySize=auto;orthogonalLoop=1;outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.emr_cluster;fillColor=#F58534;gradientColor=none;";

var shape = str.split('mxgraph.aws3.')[1].split(';')[0];

console.log(shape) // gives "emr_cluster"

如果它是一个不同的源-那么您可以相同-在“ shape =”上进行burt拆分以获取shape属性的完整源。

var str = "edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.915;exitY=0.5;exitPerimeter=0;entryX=0;entryY=0.5;entryPerimeter=0;jettySize=auto;orthogonalLoop=1;outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.emr_cluster;fillColor=#F58534;gradientColor=none;";

var shape = str.split('shape=')[1].split(';')[0];

console.log(shape) // gives "mxgraph.aws3.emr_cluster"

答案 1 :(得分:0)

您可以使用String.prototype.match

var str = "edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.915;exitY=0.5;exitPerimeter=0;entryX=0;entryY=0.5;entryPerimeter=0;jettySize=auto;orthogonalLoop=1;outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.emr_cluster;fillColor=#F58534;gradientColor=none;";
let out = str.match(/shape=.*\..*\.(.*?);/)[1];
console.log(out)