【发布时间】:2021-04-07 16:44:54
【问题描述】:
我目前正在迁移我的博客,并希望将我的 html 中的所有样式属性替换为与 React 兼容的属性。
例如
<div style="display: flex; flex-direction: row; justify-content: flex-start">
需要成为。
<div style={{ display: "flex"; flexDirection: "row"; justifyContent: "flex-start" }}>
所以- 需要替换为键中的驼峰式。值需要用" 包裹,整个样式属性的" 需要用{{ 和}} 替换。
到目前为止,我做了以下功能。
function toReactStyle(str) {
return str
?.toLowerCase()
.replace(";", ",")
.replace(/-(.)/g, function ($1) {
return $1.toUpperCase();
})
.replace("-", "");
}
const $ = cheerio.load(node.value);
const div = $("div");
const style = div.attr("style");
div.attr("style", `{{${toReactStyle(style)}}}`);
但是,这并没有涵盖完整的预期结果,看起来也不是很有效。还没有围绕值的引号。仅删除了第一个连字符。
{{display: flex, justifyContent: flext-Start; align-Items: center;}}
我还尝试找到一些可以为我执行此操作的现有库,但到目前为止找不到。有没有人知道现有的库可以做到这一点,或者有 Rockstar Regex 技能的人可以解释使用哪个 Regex 以及 Regex 如何工作?
我挣扎的事情是只将值括在引号中。并且只对键进行驼峰式处理,并且只从键中删除 -。
【问题讨论】:
-
试试吧兄弟:v。 magic.reactjs.net/htmltojsx.htm
-
我需要在我的脚本中加入一些东西。不想手动运行我所有的博文。
标签: javascript html css reactjs regex