Как замаскировать строку в Swift 4.2

Я хочу сделать маску из нити.

let unmasked = "12345678900"
//string masked = "123.456.789-00"

Это бразильский формат CPF, я ничего не нашел в Stack Overflow BR.


person Maicon Santos    schedule 21.11.2018    source источник


Ответы (1)


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

Португальский: Eu encontrei uma solução usando um array de caracteres e função array.insert, который позволяет вставить строку qualquer em um determinado index da matriz.

let cpf = "12345678900"
var characters = Array(cpf) //making a character array (criando um array de caracteres)

characters.insert(".", at: 3) //inserting "." in index 3 (inserindo "." no index 3) 
//character = ["1","2","3",".","4","5","6","7","8","9","0","0"]

characters.insert(".", at: 7) // inserting "." in index 7 (inserindo "." no index 7)
//character = ["1","2","3",".","4","5","6",".","7","8","9","0","0"]

characters.insert("-", at: 11)// inserting "." in index 11 (inserindo "." no index 11)
//character = ["1","2","3",".","4","5","6",".","7","8","9","-","0","0"]

let masked = String(characters) //convert character to string
pint("cpf masked: ",masked)
//the masked will show: 123.456.789-00 (a mascara irá mostrar: 123.456.789-00)

person Maicon Santos    schedule 21.11.2018