X-позициясының аралығындағы тұрақты өрнек арқылы жолды ауыстыру (javascript)

I would very much appreciate some assistance from the community on replacing a string at xth position intervals, using JavaScript regex. For example, if the string length is 161 and the replacement text is
, regex would replace the string at the 40th, 80th, 120th, and 160th positions with this replacement text. Is this possible using regex?

Көп рақмет.

2
Ия, бұл дұрыс. Неге басқа техника? Себебі менің логикум regex-кодтың төмен сызықтарын талап етеді және қарапайым болуы мүмкін деп санайды. Дегенмен, мен басқа әдістерге ашықпын.
қосылды автор user717236, көзі
Иә, рахмет, сіздің кеңесіңізді бағалаймын. Ескерту: Осыған байланысты, мен жоғарыда айтылған түсініктемеде «мүмкін» дегенді білдіретінмін.
қосылды автор user717236, көзі
Регреспен мүмкін болса да, мұны істеудің басқа әдістерін неге пайдаланбаңыз? Менің ойымша, әр нәрсе (n% 40 == 0) позициясын кіргізгіңіз келеді.
қосылды автор FailedDev, көзі
Кодтың аз сызықтары оны неғұрлым қарапайым не тиімді емес етеді. Айта кету керек.
қосылды автор FailedDev, көзі

2 жауаптар

A method to add
at ever 40th position is by using the following line:

string = string.replace(/([\S\s]{40})/g , "$1
");

Егер орынды пайдалануды динамикалық түрде орнатқыңыз келсе:

var positions = 40;
var pattern = new RegExp("([\\s\\s]{" + positions + "})", "g");
string = string.replace(pattern , "$1
");

Explanation of the code:

  1. The first argument of the replace function is a RegExp:
    • ([\S\s] = all non-whitespace and white-space characters = every character).
    • {40} = 40 characters
    • The g flag means: global match, ie: match every possible occurence
    • The parentheses inside the RegExp means: Create a group. This group can later be referred by $1 (first group)
  2. The second argument of the replace function contains $1
    . That is: replace the full match by the first group ($1), and add
    to it.
4
қосылды
Сіздің көмегіңіз үшін үлкен рахмет. Бұл ең жоғары баға.
қосылды автор user717236, көзі
var str = "12345678901234567890";
var newStr = str.replace(/(.{5})/g,"$1
");

әрбір 40-ға 5-тен 40-ға дейін өзгертіңіз.

1
қосылды
Көп рақмет. Маған бұл шешім ұнайды. Тағы да рахмет.
қосылды автор user717236, көзі