我需要根据提供的长度将不带空格的连续字符串分成两个或多个部分。
要分割一个字符串,例如:“ 1123071271231231231231212730123071293790123017231027301273465”,我正在使用以下正则表达式
data.match(new RegExp('(?:^|\\b)[\\w\\W .]{1,48}(?:|$)', 'gi'))
但这无法正确分割。
JS小提琴:https://jsfiddle.net/sp6zhkfa/3/
我需要根据{1,48} length将上述字符串分成两部分。该长度根据一些计算值动态变化,因此我的正则表达式实际上就像
data.match(new RegExp('(?:^|\\b)[\\w\\W .]{1,' + splitChar + '}(?:|$)', 'gi'))
其中splitChar是动态计算的值,在上面的示例中为48。
有人可以建议我吗?
答案 0 :(得分:0)
let splitChar = 48; // your calculated value
let vals = [];
for (var i = 0; i < val.length; i += splitChar) {
vals.push(data.substr(i, splitChar));
}
然后,您在vals
中拥有所有部分的数组
答案 1 :(得分:0)
\b
,\W
和$
无关紧要,因为您有一个连续的字符串。找到其含义here。
使用\w
匹配任何字母数字字符,或使用\d
仅匹配数字字符。
正则表达式看起来很简单:
data.match(new RegExp('\\w{1,' + splitChar + '}', 'gi'))