我有一个这样的数组:
var array=[
'100000011022',
'122339311022',
'988881233221',
'000130009999',
]
...我想找到具有相同列的组(LENGTH:最小2,最大10)并将每个组元素替换为另一个值(例如0)。
例如--->
988881233221
=>900001200001
(找到'8888','33','22')
所以结果应该是这样的:
var result=[
'100000000000',
'100009300000',
'900001200001',
'000130000000',
]
因为我不知道如何使用正则表达式这是我到目前为止所做的一切,对不起!
var array=[
'100000011022',
'122339311022',
'988881233221',
'000130009999'
]
var result = array.join('\n').replace(/.{4,10}[^.]/g, function(a) {
return a.replace(/./g,'0')
})
console.log(result)
答案 0 :(得分:0)
使用\ 1引用任何匹配的符号。
var array=[
'100000011022',
'122339311022',
'988881233221',
'000130009999'
]
var result = array.join('\n').replace(/(.)\1{1,9}/g, function(a) {
return a.replace(/./g,'0')
})
console.log(result)

答案 1 :(得分:0)
(\d)\1
替换:00
const regex = /(\d)\1/g;
var array=[
'100000011022',
'122339311022',
'988881233221',
'000130009999'
]
const subst = `00`;
// The substituted value will be contained in the result variable
array.forEach(function(s, i) {
array[i] = s.replace(regex, subst);
});
console.log(array);

(\d)
将一个数字捕获到捕获组1 \1
匹配最近与捕获组1匹配的文本