【问题标题】:How to break up a string in javascript如何在javascript中分解字符串
【发布时间】:2016-03-10 19:30:22
【问题描述】:

好的,我需要做的是分解一个大字符串,该字符串在每行的开头和结尾都包含相同的模式。 IE。我有一个像这样的大字符串:

<p>echo "test";</p><p>$d = "something"; </p> //don't ask why - part of something bigger :)

我想分解它,我假设我需要使用explode,但是分解后的字符串应该是这样的数组:

['echo "test";' , '$d = "something";']
  1. 行首总是有&lt;p&gt;标签,行尾总是有&lt;/p&gt;
  2. “行”应该存储在数组中,因为我需要遍历其中的每一个
  3. 我想去掉每行开头和结尾的标签,即如果该行是&lt;p&gt;echo '&lt;p&gt;test&lt;/p&gt;'; &lt;/p&gt;,我想保留内部p标签,即我想得到:echo '&lt;p&gt;test&lt;/p&gt;';

提前致谢

【问题讨论】:

  • 遍历所有TEXT_NODEs,然后将它们推入一个数组中
  • 您需要了解正则表达式的工作原理。还有 FOR 循环。如果您确信您的所有文本将始终以完全相同的方式形成,那么只需将片段整理并组织起来即可。
  • 你不能嵌套&lt;p&gt;标签...
  • 是的,你可以。否则我不会这么说。这只是一个字符串,没有经过处理的 html 代码。
  • 我猜@dandavis 说的是你甚至不应该嵌套

    标签,因为它是非法的(并且可能首先修复导致生成这样一个字符串的任何东西地方)。当然,没有什么能阻止任何人一开始就创建这样的字符串。

标签: javascript arrays string explode


【解决方案1】:

从字符串中删除第一个 &lt;p&gt; 和最后一个 &lt;/p&gt;,然后删除 String.split('&lt;p&gt;&lt;/p&gt;')

【讨论】:

  • 以编程方式删除第一个和最后一个 p 标签是我打算做的。
  • 好的。我建议的拆分呢?
  • 没有给出想要的输出:(
【解决方案2】:

我做了一些实验性编码并来到了这个

code = code.replace(/(<(p)>)/ig,"<p> ");

我所做的基本上是用&lt;p&gt; 替换&lt;p&gt; 标签,后跟一个空格。由于我在空格 (' ') 上爆炸字符串,因此如果您愿意,回显将被视为单独的单词或标记,这是我想要的输出。

这样它不会真正影响内部的 p 标签。

【讨论】:

    【解决方案3】:

    您可以只使用array.split("&lt;p&gt;"),然后遍历数组中的每个值并用空格替换&lt;/p&gt;

    var yourArrayData = yourData.split("<p>");
    for(var i=0; i<yourArrayData.length; i++){
      yourArrayData[i] = yourArrayData[i].replace(/<\/p>/g, "");
    }
    

    【讨论】:

    • 我可以,但是由于有两个

      标签,这不会拆分两次吗?并用空格替换

      并替换两个结束 p 标签,不是吗? :)
    • 啊刚刚看到你的编辑.. 那么在这种情况下,你如何创建不可见的 html 元素,然后遍历每个并抓取它的 html?
    • 你会怎么做呢?假设用户以上述方式输入代码,则富文本编辑器会自动添加外部 p 标签。所以,为了以某种方式处理代码,我的意思是处理行内的每个单词(即在外部 p 标记之间),我需要摆脱外部 p 标记,因为它们阻碍了它们。
    • 从技术上讲,p 标签在p 中是不允许的。或者不能正常工作。更好的选择是在div 中使用p。或者&lt;br/&gt;
    • p 标签需要从外面移除,因为我不希望整个东西都被嵌套。但我得到了这个工作:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    • 2013-11-01
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多