Javascript 当超过一定长度时,如何始终在两个字符之一之后进行换行?

Javascript 当超过一定长度时,如何始终在两个字符之一之后进行换行?,javascript,html,css,line-breaks,paragraph,Javascript,Html,Css,Line Breaks,Paragraph,var数组=[“99999999999999+99999999999999999=2,3+16”、“666666666666666+3=666666669”、“3x3=9”、“2,3-2,1=0,2”]; var table=document.createElement('table'); var tableBody=document.createElement('TBODY'); table.border='0'; table.appendChild(表体); 函数makeArr() { va

var数组=[“99999999999999+99999999999999999=2,3+16”、“666666666666666+3=666666669”、“3x3=9”、“2,3-2,1=0,2”];
var table=document.createElement('table');
var tableBody=document.createElement('TBODY');
table.border='0';
table.appendChild(表体);
函数makeArr()
{
var myTableDiv=document.getElementById(“myTable1”);
tableBody.innerHTML=“”;

对于(var i=0;i一个完整的解决方案是相当复杂的,因此,我将给您一个清单,供您进一步研究:

将答案本身以粗体显示在一行上:由于每个答案(即每个等式的右侧)都应该始终单独显示在一行上,请使用
.split(/=/)
将等式拆分为两半。您可以将右半部分显示在一个
中,并使用CSS将该div格式化为粗体

看起来您已经知道了如何获得元素的计算宽度。您可以使用它来确定答案是否太宽,在这种情况下,您可以使用
.toExponential()
将其以指数形式格式化,然后再将其插入

至于等式的左边,如果你想确定哪些数字太长而不能放在一行中,并用
toExponential()
重新格式化,这会变得很棘手,因为你现在必须解析每个数字,测试其长度,并决定是否重新格式化。这不是不可能的,但很痛苦


假设您不想为此费心,然后继续执行任务,在必要时将等式的左侧换行,但仅在
+,-,*,/
(它不包括
=
,因为前面拆分字符串的步骤只会给出等式的左侧,最多但不包括
=
):将
[space][operator][space]
(例如
+
)的所有实例替换为
[operator][Unicode零宽度空格]
。这将确保换行时,它仅在零宽度空间进行换行,但空格(实际上,非打断空格)仍然出现在运算符周围。

使用
.toExponential()
将数字转换为指数形式。至于在超过某个长度时添加换行符,这是一个非常模糊的说法。请确切描述您希望在什么情况下发生这种情况。谢谢!有点像CSS标记“溢出”但这并不提供该功能…它必须执行换行操作,并始终以(+、-、*、/、=)结尾,而不是使容器溢出(-padding?)。输入的数字的最大字符长度将被声明为elsewere,如果为long,则转换为指数。为什么您的数学表达式中有逗号?我从windows计算器复制了它,我认为是因为它是德语,我们将2点5写为2,5,而不是2.5分钟。注意:您有两个id为
的元素=“myTable2
。ID必须是唯一的。非常感谢您的指导方针=))我知道我能做什么了!