Estoy tratando de enmascarar información confidencial que puede ser cualquier cadena alfanumérica, por ejemplo.
Ejemplo 1
Antes de enmascarar - PMGKJGFWB125 Después de enmascarar - PMG******125
Ejemplo 2
Antes de enmascarar - 19000 Después de enmascarar - 1**00
Estaba intentando algo como esto en C#
Regex.Replace(s, @"\d(?!\d{0,3}$)", "*")
La longitud de la cadena puede variar, por lo que no podemos agregar compensaciones codificadas.
¿Puedo obtener ayuda con esto?
Gracias por adelantado
Parece que, más o menos, quieres dividir tu cadena en cuartos y luego destacar los dos cuartos del medio.
No te pongas demasiado técnico..
var str = "PMGKJGFWB125".ToCharArray(); for(int x = str.Length/4; x < str.Length*3/4; x++) str[x] = '*'; return new string(str);Puede ajustar el 4 para cadenas de diferentes longitudes, por ejemplo, si su cadena es 6 o menos, tal vez haga 3 en lugar de 4, etc.
Si lo quieres como LINQ, por un "¡¿QUÉ es eso?!" risa:
(int f, int t) = (str.Length/4, str.Length*3/4); return string.Concat(str.Select((c,i)=>f<i&&i<t?'*':c)));