关于取一段字符串中的一段xml的问题?

发布于 2022-09-04 13:24:15 字数 551 浏览 9 评论 0

Blockly.Blocks['kjh'] = {
  init: function() {
    this.appendDummyInput().appendField('kjh');
    this.setOutput(true, null);
    this.setColour(164);
    this.setTooltip('');
    this.setHelpUrl('');
  }
};
Blockly.JavaScript['kjh'] = function(block) {
      var code = 'gdfnh';
      return [code, Blockly.JavaScript.ORDER_NONE];
}
<xml xmlns="http://www.w3.org/1999/xhtml">
    <block type="variables_get" id="EaezE9)%*e^B{Olq7?Le" x="147" y="34"></block>
</xml>

请问如何取这段字符串中的xml部分?
非常感谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绿萝 2022-09-11 13:24:15

遇到这种我的一般做法是利用replace+正则来提取。

var t = `Blockly.Blocks['kjh'] = {
  init: function() {
    this.appendDummyInput().appendField('kjh');
    this.setOutput(true, null);
    this.setColour(164);
    this.setTooltip('');
    this.setHelpUrl('');
  }
};
Blockly.JavaScript['kjh'] = function(block) {
      var code = 'gdfnh';
      return [code, Blockly.JavaScript.ORDER_NONE];
}
<xml xmlns="http://www.w3.org/1999/xhtml">
    <block type="variables_get" id="EaezE9)%*e^B{Olq7?Le" x="147" y="34"></block>
</xml>`;

var res;

t.replace(/<xml[^<>]+>[\s\S]*?<\/xml>/,function(e){
    res = e;
    return e
});

正则规则我没考虑那么多,同样从题主之前采纳的问题答案里找的参考的 https://segmentfault.com/q/10...
(ps:问题大多都一样,建议题主尝试举一反三)。

这里主要一个正则是关于这段文本如果有回车换行的情况,直接用.*并不能直接匹配,但可用[\s\S]*代替

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文