Regex匹配更多可能性(javascript)
Regex to match more possibilities (javascript)
此正则表达式(用于base64):
/[a-zA-Z0-9/+]{5}/g
将匹配字符串中的每5个字符。因此,如果我有:
"19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAw"
匹配项为:
- 19jZ2
- uLj5O
- Xm5+j
- p6vLz
- 9PX29
- /j5+v
- /aAAw
我将如何编写一个正则表达式,以产生以下匹配
- 19jZ2
- 9jZ2u
- jZ2uL
- Z2uLj
- 2uLj5
- uLj5O
- 等等
(^字符串中可能每5个连续字符)
这个怎么样:
"19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAw".split('').map(function(elm, i, arr) {
return arr.slice(i,i+5).join('') }
).slice(0,-4)
基于adeneo的评论:
var result = [],
s = '19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAw';
while (s.length > 4) {
result.push(s.substr(0, 5));
s = s.substr(1);
}
这里有一个建议:
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', ...]
一个简单的([a-zA-Z0-9+'/]{5})
可以为这个特定的输入做这件事
现场演示
如果字符串位于引号之间,则为(?:"|'G(?<!^))([a-zA-Z0-9+'/]{5}|[a-zA-Z0-9+'/]+)(?=.*?")
现场演示
或者(?:"|'G(?<!^))([a-zA-Z0-9+'/]{5})(?=(?:[a-zA-Z0-9+'/]{5})*")
,如果您的字符串计数正好是5 的倍数
现场演示
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- Regex匹配更多可能性(javascript)
- 使用javascript修改HTML文件后保存HTML文件的任何可能性
- Javascript字符串中的加扰字符都是可能的排列,可能性相同
- 在html5/css3/javascript中实现全功能文字处理器的可能性
- Javascript:函数作为参数,可能性
- Javascript复杂的可能性
- 将PHP传递到新的javascript窗口的可能性
- 使用Javascript获得2个数字之间的随机数,但具有特定范围的可能性较小
- Nodejs基于javascript,是否有一种可能性用户可以破解代码