Javascript разрезает строку на куски указанной длины, хранящиеся в переменной - PullRequest
0 голосов
/ 12 декабря 2018

Я хотел бы нарезать строку JavaScript в массив строк заданной длины (длина может варьироваться), поэтому я хотел бы иметь параметр длины в качестве отдельной переменной:

var length = 3;
var string = 'aaabbbcccddd';
var myArray = string.match(/(.{3})/g);

Какиспользовать переменную длины в совпадении?Или любое другое решение, похожее на str_split в PHP.

Мой вопрос не является дубликатом: Разделение большой строки на куски n-размера в JavaScript , потому что я знаю, как нарезать, но вопроскак использовать переменную в совпадении.

Мне не удается это сделать Javascript Regex: Как поместить переменную в регулярное выражение?

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Я не знаю, получил ли вы исправление для этой проблемы:

Я вчера рассмотрел ваш вопрос, но не смог ответить на него по причине того, что вопрос был отложен или помечен какдубликат и позже я получил исправление для этого.Надеюсь, это поможет вам, если вы еще не исправили это.

То, что я использовал, это new RegExp(), пожалуйста, посмотрите на скрипку:

var length = 3;
var string = 'aaabbbcccddd';
dynamicRegExp =new RegExp("(.{"+length+"})", "g");
console.log("Regex used: "+ dynamicRegExp);
var myArray = string.match(dynamicRegExp);
console.log("Output: "+ myArray);

Синтаксис

new RegExp(pattern[, flags])
RegExp(pattern[, flags])

Параметры

  • Шаблон

Текст регулярного выражения или, с ES5, другой объект RegExp (или литерал) для копирования (последний только для двух нотаций конструктора RegExp).

  • flags

Если указано, flags указывает флаги для добавления, или, если объект задан для шаблона, значение flags заменяет любой из флагов этого объекта (и lastIndex будет сброшен в 0) (какES2015).Если флаги не указаны, а объект регулярных выражений указан, флаги этого объекта (и значение lastIndex) будут скопированы.

Что @ Code Maniac также является правильным или таким же, как этот.

0 голосов
/ 12 декабря 2018

Ну, string.substr() - лучший вариант, если вам всегда нужно делить только по длине.

Но если вам интересно узнать, как это сделать с помощью регулярных выражений, вы можете добавитьпеременная в вашем RegExp следующим образом.

var length = 3;
let reg = new RegExp(`(.{${length}})`, 'g')
var string = 'aaabbbcccddd';
var myArray = string.match(reg);
console.log(myArray);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...