【问题标题】:Remove html attributes from a string从字符串中删除 html 属性
【发布时间】:2021-11-01 04:18:52
【问题描述】:

我正在创建一个内部工具,设计人员可以将导出的 svg 代码粘贴到文本区域,它会在语法荧光笔中显示该 html 代码 (https://antoniandre.github.io/simple-syntax-highlighter/)

当他们像这样粘贴代码时

<svg xmlns="http://www.w3.org/2000/svg" width="18.135" height="12.365" viewBox="0 0 18.135 12.365">
  <path id="Path_4" data-name="Path 4" d="M10.067,5.649a8.054,8.054,0,0,1,7.27,4.534,8.1,8.1,0,0,1-14.541,0,8.054,8.054,0,0,1,7.27-4.534m0-1.649A9.749,9.749,0,0,0,1,10.182a9.741,9.741,0,0,0,18.135,0A9.749,9.749,0,0,0,10.067,4Zm0,4.122a2.061,2.061,0,1,1-2.061,2.061,2.062,2.062,0,0,1,2.061-2.061m0-1.649a3.709,3.709,0,1,0,3.709,3.709A3.715,3.715,0,0,0,10.067,6.473Z" transform="translate(-1 -4)"/>
</svg>

我想像这样删除与粘贴的字符串相关的宽度、高度和任何 id

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.135 12.365">
  <path d="M10.067,5.649a8.054,8.054,0,0,1,7.27,4.534,8.1,8.1,0,0,1-14.541,0,8.054,8.054,0,0,1,7.27-4.534m0-1.649A9.749,9.749,0,0,0,1,10.182a9.741,9.741,0,0,0,18.135,0A9.749,9.749,0,0,0,10.067,4Zm0,4.122a2.061,2.061,0,1,1-2.061,2.061,2.062,2.062,0,0,1,2.061-2.061m0-1.649a3.709,3.709,0,1,0,3.709,3.709A3.715,3.715,0,0,0,10.067,6.473Z" transform="translate(-1 -4)"/>
</svg>

我正在使用 Vuejs 来执行此操作,因此我更喜欢 jQuery 的 JS 来解决此问题。我用 JS 尝试了一些东西,但没有成功删除这些属性。

【问题讨论】:

  • 也许您尝试过这个,但您是否考虑过只保留您需要的而不是删除您不需要的,这意味着您只需从字符串中提取选定的值并使用这些值创建一个新元素值。

标签: javascript regex string vue.js


【解决方案1】:

尝试使用这个正则表达式:

\s*(width|height|id|etc)="[^"]*"

说明:

\s*: 替换任何空格

(width|height|id|etc):替换widthheight...

[^"]*:替换任何不是"的字符,重复0到无限次

【讨论】:

    猜你喜欢
    • 2019-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 2014-01-10
    • 2022-07-01
    相关资源
    最近更新 更多