скрыть некоторые номера со звездочкой в ​​номере телефона UIlabel, использующем для проверки otp приложение swift 4 - PullRequest
0 голосов
/ 25 сентября 2018

Я делаю приложение в Swift 4, и я хочу, чтобы текст метки введенного номера показывал что-то вроде этого при отправке otp

"otp отправляется на +91 ****** 21"

вот что я нашел сейчас. Я не знаю, какую логику следует применять здесь, чтобы публиковать подобные строки

var mobileNumer = "+91987654321"
let intLetters = mobileNumer.prefix(3)
let endLetters = mobileNumer.suffix(2)

Я хочу, чтобы этот тип числа отображался на ярлыке послепри наборе номера мобильного телефона сначала должны появиться два числа, затем начнется, а затем - последние два числа

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Вы можете использовать эту функцию.

func starifyNumber(number: String) -> String {
        let intLetters = number.prefix(3)
        let endLetters = number.suffix(2)
        let numberOfStars = number.count - (intLetters.count + endLetters.count)
        var starString = ""
        for _ in 1...numberOfStars {
            starString += "*"
        }
        let finalNumberToShow: String = intLetters + starString + endLetters
        return finalNumberToShow
    }

Чтобы позвонить

let mobileNumer = starifyNumber(number: "+91987654321")
print(mobileNumer) \\+91*******21
0 голосов
/ 25 сентября 2018

попробуйте это:

var mobileNumer = "+91987654321"
let intLetters = mobileNumer.prefix(3)
let endLetters = mobileNumer.suffix(2)

let newString = intLetters + "*******" + endLetters   //"+91*******21"

Или, если вы хотите быть в безопасности:

var mobileNumer = "+91987654321"

guard mobileNumer.count > 5 else {
    fatalError("The phone number is not complete")
}

let intLetters = mobileNumer.prefix(3)
let endLetters = mobileNumer.suffix(2)

let stars = String(repeating: "*", count: mobileNumer.count - 5)

let result = intLetters + stars + endLetters

Или, если вы предпочитаете заменить поддиапазон:

var mobileNumer = "+91987654321"

guard mobileNumer.count > 5 else {
    fatalError("The phone number is not complete")
}

let startingIndex = mobileNumer.index(mobileNumer.startIndex, offsetBy: 3)
let endingIndex = mobileNumer.index(mobileNumer.endIndex, offsetBy: -2)
let stars = String(repeating: "*", count: mobileNumer.count - 5)
let result = mobileNumer.replacingCharacters(in: startingIndex..<endingIndex,
        with: stars)

Или

Если вы хотите изменить mobileNumer:

mobileNumer.replaceSubrange(startingIndex..<endingIndex, with: stars)
print(mobileNumer) //"+91*******21"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...