Не работает split
function Table()
{
var a=mytextarea.value.split(/$\s*/m);
najal=0;
if(a.length==0)
{
var n=Chislo.value;
}
else
{
n=a.length;
mytextarea.style.height=n*15+'px';
ChisloYchastkov.value=n;
}
var n=ChisloYchastkov.value;
if(a.length>0)
{
for(var i=1;i<=n;i++)
{
element1="ploshad"+i;
abs1=a.split(";",1);
document.getElementById(element1).value=abs1[i-1];
}
for(var i=1;i<=n;i++)
{
element2="koordinat"+i;
abs2=a.split(";",1);
document.getElementById(element2).value=abs2[i-1];
}
Есть массив данных которые я ввожу в mytextarea 75;180;0;170;20;230;30;250;0; 80;180;0;170;20;230;30;250;0; 75;180;0;170;20;230;30;250;0; 70;180;0;170;20;230;30;250;0; 80;180;0;170;20;230;30;250;0; 65;180;0;170;20;230;30;250;0; 90;180;0;170;20;230;30;250;0; 70;180;0;170;20;230;30;250;0; 60;180;0;170;20;230;30;250;0; А в свою очередь split делит данные в разные input type=text, должно было получиться в одном input первое число 75, а во втором 180;0;170;20;230;30;250;0;, но вместо этого выводится сразу вся строка. |
Цитата:
let s = '75;180;0;170;20;230;30;250;0;' let sr = /(\d+);(.+)/.exec(s) let abs1= sr[1] let s1 = sr[2] console.log(abs1, s1) |
Цитата:
let s = '75;180;0;170;20;230;30;250;0;' let sr = s.split(/(?<=^\d+);/) let abs1= sr[0] let s1 = sr[1] console.log(abs1, s1) |
Uncaught TypeError: s.split is not a function если я использую 'a' вместо '75;180;0;170;20;230;30;250;0;'.
|
mat45,
??? |
Вложений: 1
if(a.length>0)
{
for(var i=1;i<=n;i++)
{
element1="ploshad"+i;
element2="koord"+i;
let sr = mytextarea.value.split(/(?<=^\d+);/);
let abs1= sr[0];
let s1 = sr[1];
console.log(abs1, s1);
document.getElementById(element1).value=abs1;
document.getElementById(element2).value=s1;
}
}
Я поменял, но вот что мне выдает |
mat45,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
td{
border: 1px solid #0000FF;
}
table{
border-collapse: collapse;
}
input
</style>
</head>
<body>
<table>
<tbody>
</tbody>
</table>
<textarea id=mytextarea cols="35" rows="10">
75;180;0;170;20;230;30;250;0;
80;180;0;170;20;230;30;250;0;
75;180;0;170;20;230;30;250;0;
70;180;0;170;20;230;30;250;0;
80;180;0;170;20;230;30;250;0;
65;180;0;170;20;230;30;250;0;
90;180;0;170;20;230;30;250;0;
70;180;0;170;20;230;30;250;0;
60;180;0;170;20;230;30;250;0;</textarea>
<script>
let ar = mytextarea.value.trim().split(/[\n\r]+/);
ar = ar.map((str, i) => {
let td = document.createElement("TD"), tr = document.createElement("TR");
let [a, b] = str.split(/(?<=^\d+);/)
let input = document.createElement("input");
input.value = a;
td.append(input);
tr.append(td);
td = document.createElement("TD");
input = document.createElement("input");
input.value = b;
td.append(input);
tr.append(td);
return tr
});
let tbody = document.querySelector("table tbody");
tbody.append(...ar)
</script>
</body>
</html>
|
Я попытался вставить это в код, но вся проблема в том он создает отдельную таблицу, у меня уже создаются отдельные input(такой как ploshad и koord), которые потом используются для вычислений, и я пытался переписать код что бы данные вставлялись туда, но что то не получилось.
|
mat45,
:-?
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
input[id^="ploshad"] {
width: 3em;
}
input[id^="koordinat"] {
width: 13em;
}
</style>
</head>
<body>
<input type="text" id="ploshad1">
<input type="text" id="koordinat1">
<br>
<input type="text" id="ploshad2">
<input type="text" id="koordinat2">
<br>
<input type="text" id="ploshad3">
<input type="text" id="koordinat3">
<br>
<input type="text" id="ploshad4">
<input type="text" id="koordinat4">
<br>
<input type="text" id="ploshad5">
<input type="text" id="koordinat5">
<br>
<input type="text" id="ploshad6">
<input type="text" id="koordinat6">
<br>
<input type="text" id="ploshad7">
<input type="text" id="koordinat7">
<br>
<input type="text" id="ploshad8">
<input type="text" id="koordinat8">
<br>
<input type="text" id="ploshad9">
<input type="text" id="koordinat9">
<br>
<input type="text" id="ploshad10">
<input type="text" id="koordinat10">
<br>
<textarea id=mytextarea cols="35" rows="10">
75;180;0;170;20;230;30;250;0;
80;180;0;170;20;230;30;250;0;
75;180;0;170;20;230;30;250;0;
70;180;0;170;20;230;30;250;0;
80;180;0;170;20;230;30;250;0;
65;180;0;170;20;230;30;250;0;
90;180;0;170;20;230;30;250;0;
70;180;0;170;20;230;30;250;0;
60;180;0;170;20;230;30;250;0;</textarea>
<script>
let ar = mytextarea.value.trim().split(/[\n\r]+/);
ar.forEach((str, i) => {
let [a, b] = str.split(/(?<=^\d+);/);
let input = document.getElementById(`ploshad${++i}`);
input.value = a;
input = document.getElementById(`koordinat${i}`);
input.value = b;
});
</script>
</body>
</html>
|
рони,
Перекинул часть, и все иделально работает, спасибо! |
| Часовой пояс GMT +3, время: 10:40. |