【问题标题】:Text Block Parser文本块解析器
【发布时间】:2015-06-25 05:48:36
【问题描述】:

所以我有一个网站,它有一个文本框,您可以将一段文本粘贴到其中。您输入的字符串存储为变量。我正在研究一个解析字符串并为您留下两个变量的javascript部分。您过去的部分如下所示。

<!-- Note: comment.
Comment/Comment, more comments "comment"-->
<xx:aaa xx:bbb="sss" xx:ccc="SectionA;SectionB;SectionC=SectionD;SectionE=SectionF.SectionG.SectionH;,SectionI=SectionJ;SectionK=SectionL;SectionM=SectionN;SectionO=SectionP.SectionQ.SectionR;SectionS=/;"/>
<vz:aaa xx:bbb="iii" xx:ccc="\SectionT\SectionU\_SectionV,\SectionW\SectionX,\SectionY\_SectionZ"/>

所以输入字符串,解析后你会得到以下变量:

varaible1: SectionA;SectionB;SectionC=SectionD;SectionE=SectionF.SectionG.SectionH;,SectionI=SectionJ;SectionK=SectionL;SectionM=SectionN;SectionO=SectionP.SectionQ.SectionR;SectionS=/;
variable2: \SectionT\SectionU\_SectionV,\SectionW\SectionX,\SectionY\_SectionZ

我有一个基本的解析器设置,它将 \ 替换为逗号,但这显然不会削减它。这里需要进行一些严肃的解析操作。

【问题讨论】:

  • 问题是?
  • 需要获取输入的字符串才能返回两个变量。这两部分都有解释。

标签: javascript parsing text


【解决方案1】:

您可以使用正则表达式解析字符串:

    var string = 'Note: comment. Comment/Comment, more comments "comment" \
    <xx:aaa xx:bbb="sss" xx:ccc="SectionA;SectionB;SectionC=SectionD;SectionE=SectionF.SectionG.SectionH;,SectionI=SectionJ;SectionK=SectionL;SectionM=SectionN;SectionO=SectionP.SectionQ.SectionR;SectionS=/;"/> \
    <vz:aaa xx:bbb="iii" xx:ccc="\SectionT\SectionU\_SectionV,\SectionW\SectionX,\SectionY\_SectionZ"/>';
    var regex = /xx:ccc=\"([^\>]*)\"\/\>/g;
    var variable1 = regex.exec(string)[1];
    var variable2 = regex.exec(string)[1];
    alert(variable1);
    alert(variable2);

xx:ccc=\" 匹配字符 xx:ccc="

([^\&gt;]*) 捕获多个字符,可以是除右括号之外的任何字符

\"\/\&gt; 匹配字符 "/&gt;

regex.exec 返回一个数组,其中第一个元素是匹配项,第二个元素是第一个捕获组,因此您可以将捕获组的内容分配给您的变量。

【讨论】:

  • 好吧,我明天试试。但是,如果您将整个文本块粘贴到其中,那会起作用吗?从
猜你喜欢
  • 1970-01-01
  • 2012-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-28
  • 2020-08-13
  • 1970-01-01
相关资源
最近更新 更多