Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как заменить символ ":" и цифры перед ним с помощью регулярного выражения (https://javascript.ru/forum/misc/68981-kak-zamenit-simvol-i-cifry-pered-nim-s-pomoshhyu-regulyarnogo-vyrazheniya.html)

RudeMood 22.05.2017 12:33

Как заменить символ ":" и цифры перед ним с помощью регулярного выражения
 
Всем привет! Столкнулся с проблемой: мне надо из
Код:

textarea
взять значение (уже сделал), и заменить нумерацию перед двоеточием (и двоеточие тоже) на строку: "1:". Пробовал так:

var textarea = document.querySelector('textarea');

    var myList = textarea.value.split('\n');
    for (var i = 0, ln = myList.length; i < ln; i++){
        var goodies = myList[i].replace(new RegExp('^.*:$', 'i'), "1:"); console.log(goodies);}


Но вот это
Код:

/^.*:$/i
не помогло.

Пример текста из
Код:

textarea
:

1: 100 Mile House, British Columbia
2: 108 Mile House, British Columbia
3: 108 Mile Ranch, British Columbia
4: 150 Mile House, British Columbia
5: Abbey, Saskatchewan
6: Abbotsford, British Columbia
7: Aberarder, Ontario
8: Abercorn, Quebec
9: Aberdeen, Saskatchewan
10: Abernethy, Saskatchewan
11: Abitibi Canyon, Ontario
12: Acadia Valley, Alberta


Надо в этих строках цифру и двоеточие поменять на 1:

ruslan_mart 22.05.2017 13:13

var value = textarea.value.replace(/\d+(?=:)/g, '1');


Для надёжности:

var value = textarea.value.replace(/^\d+(?=:)/gm, '1');

рони 22.05.2017 13:14

RudeMood,
:-?
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">

  <script>
window.addEventListener('DOMContentLoaded', function() {
var textarea = document.querySelector('textarea');
    textarea.value = textarea.value.replace(/\d+:/g,"1:");
    });
  </script>
</head>

<body>
<textarea name="" cols="40" rows="15">1: 100 Mile House, British Columbia
2: 108 Mile House, British Columbia
3: 108 Mile Ranch, British Columbia
4: 150 Mile House, British Columbia
5: Abbey, Saskatchewan
6: Abbotsford, British Columbia
7: Aberarder, Ontario
8: Abercorn, Quebec
9: Aberdeen, Saskatchewan
10: Abernethy, Saskatchewan
11: Abitibi Canyon, Ontario
12: Acadia Valley, Alberta
</textarea>

</body>
</html>

рони 22.05.2017 13:17

RudeMood,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">

  <script>
window.addEventListener('DOMContentLoaded', function() {
var textarea = document.querySelector('textarea');
    textarea.value = textarea.value.replace(/^\d+/gm,"1");
    });
  </script>
</head>

<body>
<textarea name="" cols="40" rows="15">1: 100 Mile House, British Columbia
2: 108 Mile House, British Columbia
3: 108 Mile Ranch, British Columbia
4: 150 Mile House, British Columbia
5: Abbey, Saskatchewan
6: Abbotsford, British Columbia
7: Aberarder, Ontario
8: Abercorn, Quebec
9: Aberdeen, Saskatchewan
10: Abernethy, Saskatchewan
11: Abitibi Canyon, Ontario
12: Acadia Valley, Alberta
</textarea>

</body>
</html>

рони 22.05.2017 13:22

RudeMood,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">

  <script>
window.addEventListener('DOMContentLoaded', function() {
var textarea = document.querySelector('textarea');
    var myList = textarea.value.split('\n');
    for (var i = 0, ln = myList.length; i < ln; i++){
    myList[i] = myList[i].replace(new RegExp('^.*:'), "1:");}
    textarea.value = myList.join("\n");
    });
  </script>
</head>

<body>
<textarea name="" cols="40" rows="15">1: 100 Mile House, British Columbia
2: 108 Mile House, British Columbia
3: 108 Mile Ranch, British Columbia
4: 150 Mile House, British Columbia
5: Abbey, Saskatchewan
6: Abbotsford, British Columbia
7: Aberarder, Ontario
8: Abercorn, Quebec
9: Aberdeen, Saskatchewan
10: Abernethy, Saskatchewan
11: Abitibi Canyon, Ontario
12: Acadia Valley, Alberta
</textarea>

</body>
</html>


Часовой пояс GMT +3, время: 15:56.