Javascript ';风格=“;边界:无;溢出:隐藏;高度:80px“';通过python re.sub访问js对象

Javascript ';风格=“;边界:无;溢出:隐藏;高度:80px“';通过python re.sub访问js对象,javascript,python,regex,reactjs,jsx,Javascript,Python,Regex,Reactjs,Jsx,我是前端开发人员,使用的是IUEditor,它可以从设计中生成html/css/js 但遗憾的是,我们的项目是由React组成的,所以我必须将html编译成jsx。所以我自己做的,使用python,除了剩下的一个 我得换衣服 style=“边框:无;溢出:隐藏;高度:80px” 属性,该属性应该是 样式={{边框:无,溢出:隐藏,高度:80px} 您可能会问,为什么不使用,但实际上IUEditor在其他地方使用it's one属性,而jsx默认情况下不允许使用它们 无论如何,问题是我想通过pyt

我是前端开发人员,使用的是
IUEditor
,它可以从设计中生成
html/css/js

但遗憾的是,我们的项目是由React组成的,所以我必须将html编译成jsx。所以我自己做的,使用python,除了剩下的一个

我得换衣服

style=“边框:无;溢出:隐藏;高度:80px”

属性,该属性应该是

样式={{边框:无,溢出:隐藏,高度:80px}

您可能会问,为什么不使用,但实际上IUEditor在其他地方使用it's one属性,而jsx默认情况下不允许使用它们


无论如何,问题是我想通过python re.sub方法将样式html标记更改为jsx的样式对象。我怎么能这么做?!向regex masters寻求帮助;)

使用
re.search
方法可能更简单。得到结果并构造JSX。我在Phyton并不完美,但在JS中,这可以通过

var str = 'style="border:none; overflow:hidden; height:80px"',
    rex = /\s*[\w-]+\s*:\s*[\w-]+\s*/g,
    res = str.match(rex),
    jsx = "style={{" + res[0] + "," + res[1] + "," + res[2] + "}}";
正则表达式应该是相同的。在JS中,您得到一个匹配数组,而在Phyton中,您应该以类似的方式返回一个对象。然后就是重新组合字符串。在控制台上试试

好的,根据评论。下面是此代码段的可重用版本。它应该适用于内联样式中的尽可能多的CSS属性

var str = 'style="border:none; overflow:hidden; height:80px"',
    rex = /\s*[\w-]+\s*:\s*[\w-]+\s*/g,
    res = str.match(rex),
    len = res.length,
    jsx = "style={{";

for (var i = 0; i< len-1; i++){
  jsx = jsx + res[i] + ",";
};
jsx = jsx + res[len-1] + "}}";
var str='style=“边框:无;溢出:隐藏;高度:80px”,
rex=/\s*[\w-]+\s*:\s*[\w-]+\s*/g,
res=str.match(rex),
len=相对长度,
jsx=“style={{”;
对于(变量i=0;i
为什么它必须是一个对象?样式应该能够将自身作为字符串应用,并且仍然为元素设置样式。您是否需要在子组件中作为道具访问样式?如果您正在寻找正则表达式解决方案,您可能应该添加标记。@Rahat Ahmed告诉我们样式标记必须是一个对象……我说的对吗?@Jason Estibeiro thx。我会的。啊,看来你是对的。谢谢你的帮助。实际上,它必须更加通用(?)——例如,样式元素可以多于3个,也可以少于3个。无论如何,谢谢你,我会试试你的手术;)我明白你的意思。它也非常简单。实际上,我本来打算写一个可重用的版本,但我想我有点懒。我将相应地更正我的代码。