Javascript split()会弄乱我的html标记

Javascript split()会弄乱我的html标记,javascript,jquery,regex,string,split,Javascript,Jquery,Regex,String,Split,我有一个2500字的字符串,需要放在不同的DIV中。我使用text=text.split(“”)函数检索每个单词,然后填充DIV,直到DIV.scrollHeight高于DIV.offsetHeight,然后它转到下一个DIV 我遇到的问题是,2500字字符串中的HTML标记完全混乱: 它关闭我的标签,不显示标签,不显示'+TABLEAU.length); 我认为问题可能是您可能正在拆分标签,然后浏览器试图修复它,将其全部搞乱 使用您的算法,您可能会得到如下结果: <div>

我有一个2500字的字符串,需要放在不同的
DIV
中。我使用
text=text.split(“”)
函数检索每个单词,然后填充
DIV
,直到
DIV.scrollHeight
高于
DIV.offsetHeight
,然后它转到下一个
DIV

我遇到的问题是,2500字字符串中的HTML标记完全混乱: 它关闭我的
标签,不显示
标签,不显示
'+TABLEAU.length);

我认为问题可能是您可能正在拆分标签,然后浏览器试图修复它,将其全部搞乱

使用您的算法,您可能会得到如下结果:

<div>
    <p>The text starts here
</div>
<div>
    and ends here</p>
</div>

正文从这里开始
到此为止


这显然不是最好的事情。我认为您应该跟踪开始/结束标记,只有当它们全部关闭时才更改container div。我认为问题可能是您可能正在拆分标记,然后浏览器试图修复它,将其全部搞乱

使用您的算法,您可能会得到如下结果:

<div>
    <p>The text starts here
</div>
<div>
    and ends here</p>
</div>

正文从这里开始
到此为止


这显然不是最好的事情。我认为您应该跟踪开始/结束标记,只有当它们全部关闭时才更改container div。我认为问题可能是您可能正在拆分标记,然后浏览器试图修复它,将其全部搞乱

使用您的算法,您可能会得到如下结果:

<div>
    <p>The text starts here
</div>
<div>
    and ends here</p>
</div>

正文从这里开始
到此为止


这显然不是最好的事情。我认为您应该跟踪开始/结束标记,只有当它们全部关闭时才更改container div。我认为问题可能是您可能正在拆分标记,然后浏览器试图修复它,将其全部搞乱

使用您的算法,您可能会得到如下结果:

<div>
    <p>The text starts here
</div>
<div>
    and ends here</p>
</div>

正文从这里开始
到此为止

这显然不是最好的事情。我认为您应该跟踪开始/结束标记,只有当它们全部关闭时才更改container div

我已经解决了这个问题。 我使用下面的正则表达式捕获单词和HTML标记,并使用下面的
.replace()
在我的

之后添加空格(这是问题的根源)

var texte=texte.替换(/
/g,

var TABLEAU=texte.match(/我已经解决了这个问题。
我使用下面的正则表达式捕获单词和HTML标记,并使用下面的
.replace()
在我的

之后添加空格(这是问题的根源)

var texte=texte.替换(/
/g,
);

var TABLEAU=texte.match(/我已经解决了这个问题。
我使用下面的正则表达式捕获单词和HTML标记,并使用下面的
.replace()
在我的

之后添加空格(这是问题的根源)

var texte=texte.替换(/
/g,
);

var TABLEAU=texte.match(/我已经解决了这个问题。
我使用下面的正则表达式捕获单词和HTML标记,并使用下面的
.replace()
在我的

之后添加空格(这是问题的根源)

var texte=texte.替换(/
/g,
);


var TABLEAU=texte.match(/如果您想将标记内容视为单个单词,可以尝试使用
var TABLEAU=texte.split(“”);
来代替

var nodes = $('<div/>',{ html: texte }).contents();
var TABLEAU = nodes.map(function(){
    return this.nodeType === 3 ? $(this).text().split(' ') : this;
}).get();
var节点=$('',{html:texte}).contents();
var TABLEAU=nodes.map(函数(){
返回this.nodeType===3?$(this.text().split(“”):this;
}).get();

如果要将标记内容视为单个单词,可以尝试使用而不是
var TABLEAU=texte.split(“”);

var nodes = $('<div/>',{ html: texte }).contents();
var TABLEAU = nodes.map(function(){
    return this.nodeType === 3 ? $(this).text().split(' ') : this;
}).get();
var节点=$('',{html:texte}).contents();
var TABLEAU=nodes.map(函数(){
返回this.nodeType===3?$(this.text().split(“”):this;
}).get();

如果要将标记内容视为单个单词,可以尝试使用而不是
var TABLEAU=texte.split(“”);

var nodes = $('<div/>',{ html: texte }).contents();
var TABLEAU = nodes.map(function(){
    return this.nodeType === 3 ? $(this).text().split(' ') : this;
}).get();
var节点=$('',{html:texte}).contents();
var TABLEAU=nodes.map(函数(){
返回this.nodeType===3?$(this.text().split(“”):this;
}).get();

如果要将标记内容视为单个单词,可以尝试使用而不是
var TABLEAU=texte.split(“”);

var nodes = $('<div/>',{ html: texte }).contents();
var TABLEAU = nodes.map(function(){
    return this.nodeType === 3 ? $(this).text().split(' ') : this;
}).get();
var节点=$('',{html:texte}).contents();
var TABLEAU=nodes.map(函数(){
返回this.nodeType===3?$(this.text().split(“”):this;
}).get();

你能发布你用来生成Html的代码以及Html输出吗?完成。Html输出如下:
JDLI:Ellen Page,Williem Dafoe,Hans Zimmer…De tels noms n'Entertient pas l'ambigüitéavec la Concept De film interactif?David Cage:人事部,je n'ai jamais Resensite De'ambiguétéce suj等。
where
标记应该在第一行句子的末尾,第二行在
Cage
之后。你能发布生成Html的代码以及Html输出吗?完成。Html输出如下:
JDLI:Ellen Page,Williem Dafoe,Hans Zimmer…De tels noms n'entriennent pas l“ambigüitéavec la concept de film interactif?”大卫·凯奇:人事部,je n'ai jamais Resensti d'ambiguïtéce sujet.
哪里
标签应该在第一行句子的末尾,第二行在
Cage
之后。你能发布你用来生成Html以及Html的代码吗输出?完成。HTML输出如下:
JDLI:Ellen Page,Williem Dafoe,Hans Zimmer…De tels noms n'entretient pa