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

发布于 2022-09-04 12:20:07 字数 269 浏览 11 评论 0

<xml xmlns="http://www.w3.org/1999/xhtml">
  <block type="variables_get" id="nLf_BhSsE?miY*(Kqsak" x="237" y="65">
    <field name="NAME">qqqqq</field>
  </block>
</xml>

请问如何获取这段字符串中的"qqqqq"?
万分感谢!

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

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

发布评论

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

评论(4

你在看孤独的风景 2022-09-11 12:20:08
var span = document.createElement("span");
span.innerHTML = `<xml xmlns="http://www.w3.org/1999/xhtml">
  <block type="variables_get" id="nLf_BhSsE?miY*(Kqsak" x="237" y="65">
    <field name="NAME">qqqqq</field>
  </block>
</xml>`;
var field= span.getElementsByTagName('field')[0];
var text = field.innerHTML;
孤星 2022-09-11 12:20:08
    var Cts ="<xml xmlns='http://www.w3''.org/1999/xhtml'><block type='variables_get' id='nLf_BhSsE?miY*(Kqsak' x='237' y='65'><field name='NAME'>qqqqq</field></block></xml>";
    
    alert(Cts.substr(a,b))
    //a是字符串开始的索引
    //b是字符串结束的索引
初相遇 2022-09-11 12:20:07

咋一看 感觉似曾相似的问题,原来昨天回答过类似

其实不用正则,用dom操作感觉挺好的。
正则的话,老样子,就是要识别字符串 <field name="NAME">qqqqq</field>里的标签包裹内容

var t = `<xml xmlns="http://www.w3.org/1999/xhtml">
  <block type="variables_get" id="nLf_BhSsE?miY*(Kqsak" x="237" y="65">
    <field name="NAME">qqqqq</field>
  </block>
</xml>`
var res = t.match(/<field\s+name\s*="[^"]*"[^>]*>(.*)<\/field>/);
console.log(res&&res[1])

我正则也不是很熟,感觉这正则应该能再优化吧.

我简单列一下细节点:

主要是,开始标签的正则 <field\s+name\s*="[^"]*"[^>]*> 里面我考虑到可能name后面还有空格,以及name属性后可能还有属性,所以再加个[^>]*来匹配非标签结束符>

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