Мне нужно найти способ анонимизировать последние четыре цифровых символа. Представленная строка телефонного номера, например "+36 6 41 88 75 22" (или любой другой формат, например "+36641887522" или +36 6 418 875 22 и т. Д.), Я хочу, чтобы мой код выводил "+36 6 41 88 XX XX ".
phoneNumber = "+36 6 41 88 75 22"
Ближайшее регулярное выражение, которое я нашел для моего желаемого выбора: /\d.{4}$/
, что достаточно удобно, поскольку lastFour = phone.scan(/\d.{4}$/).join
равно" 75 22 ", включая пробел.
Теперь я хочу заменить все числа (не пробел!) На «X», но
phoneNumber.gsub(/\d.{4}$/, "X")
выводит «+36 6 41 88 X», и я хочу, чтобы мой код выведите «+36 6 41 88 XX XX».
Я также попробовал следующее громоздкое решение:
phoneNumber = "+36 6 41 88 75 22"
def anonymizer(phone)
lastFour = phone.scan(/\d.{4}$/).join
anonFour = lastFour.chars
anonFour.each do |digit|
digit.gsub(/[0-9]/, "X")
end
puts "attempted transform #{anonFour}"
phone.gsub(lastFour, anonFour.join)
end
phoneyNumber = anonymizer(phoneNumber)
puts phoneyNumber
безрезультатно, так как возвращает номер как есть ("+36 6 41 88 75 22 "вместо" +36 6 41 88 XX XX ")