Почему последняя строчка "p = Console.ReadLine();" переноситься? Как это исправить?
у меня есть прога
var div = document.getElementById("hh");
function op(){
var reg = /read\((.+?)\)/;
var ab = div.innerHTML.replace(reg, '$1')
var cc = ab.split(',')
for(let i = 0; i < cc.length; i++){
console.log(cc[i] + " = Console.ReadLine();");
}
}
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<h1> Hello, Dcoder </h1>
<div id="hh">
read(a, b, к, р)
</div>
<button onclick="op()">click</button>
</body>
</html>
Результат:

Вопрос: Почему последняя строчка "p = Console.ReadLine();" переноситься? Как это исправить?
Ответы (2 шт):
Автор решения: vsemozhebuty
→ Ссылка
Дело в том, что вы заменяете только участок строки посередине содержимого тега, а пробелы и переводы строки остаются по обоим бокам этого фрагмента и потом при разбиении строки по запятым прибавляются к первому и последнему элементу. Вам нужно или изменить регулярку так, чтобы она удаляла всё до и после оставляемого фрагмента, или извлекать только фрагмент в скобках (и лучше разбивать по запятым с пробелами, чтобы потом пробелы не добавляли отступы).
Оба варианта:
var div = document.getElementById("hh");
function op(){
var reg = /.+read\((.+?)\).+/s;
var ab = div.innerHTML.replace(reg, '$1')
var cc = ab.split(', ')
for(let i = 0; i < cc.length; i++){
console.log(cc[i] + " = Console.ReadLine();");
}
}
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<h1> Hello, Dcoder </h1>
<div id="hh">
read(a, b, к, р)
</div>
<button onclick="op()">click</button>
</body>
</html>
var div = document.getElementById("hh");
function op(){
var reg = /read\((.+?)\)/;
var ab = div.innerHTML.match(reg, '$1')[1];
var cc = ab.split(', ')
for(let i = 0; i < cc.length; i++){
console.log(cc[i] + " = Console.ReadLine();");
}
}
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<h1> Hello, Dcoder </h1>
<div id="hh">
read(a, b, к, р)
</div>
<button onclick="op()">click</button>
</body>
</html>