此正则表达式(适用于base64):
/[a-zA-Z0-9/+]{5}/g
匹配字符串中的每5个字符。如果我有:
"19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAw"
比赛是:
我如何编写导致以下匹配的正则表达式?
(^字面上字符串中每个可能的5个连续字符)
答案 0 :(得分:3)
这个怎么样:
"19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAw".split('').map(function(elm, i, arr) {
return arr.slice(i,i+5).join('') }
).slice(0,-4)
答案 1 :(得分:1)
基于adeneo的评论:
var result = [],
s = '19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAw';
while (s.length > 4) {
result.push(s.substr(0, 5));
s = s.substr(1);
}
答案 2 :(得分:0)
这是一个建议:
function split(s) {
var allowed = /^[a-z\d/+]{5}/i,
result = [],
match;
while (s.length > 4) {
match = s.match(allowed);
match && result.push(match[0]);
s = s.substr(1); // removes first char
}
return result;
}
正则表达式查找每个循环的前五个字符:
split('19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAw'); // ['19jZ2', '9jZ2u', ...]
split('19jZ2=uLj5OXm5+jp6vLz9PX29/j5+v/aAAw'); // ['19jZ2', 'uLj5O', ...]
答案 3 :(得分:-3)