从电话簿复制并粘贴在文本字段中时隐藏的字符。如何删除它

时间:2018-02-17 10:51:30

标签: ios swift

当有人复制号码并粘贴在文本字段中时,我将手机号码作为登录ID。它告诉我“9999999999 \ u {e2}”。 “\ u {e2}”是隐藏字符,不会显示在文本字段中,但是当签入日志时它会显示给我。 我想删除那种类型的字符。

提前感谢您的回复。

4 个答案:

答案 0 :(得分:0)

您可以尝试修剪任何非数字字符

let strWithAll = "kdldls155558894"
let number = strWithAll.components(separatedBy: CharacterSet.decimalDigits.inverted).joined()

答案 1 :(得分:0)

你可以试试这个

let myString = "dasdf3453453fsdf23455sf.2234"
let result = String(myString.characters.filter { String($0).rangeOfCharacter(from: CharacterSet(charactersIn: "0123456789")) != nil })
print(result)

答案 2 :(得分:0)

\u{e2}实际上表示â。我不确定为什么这个字符会随着数字一起被复制,但是当字符串的末尾附加特殊字符时,你可以尝试这种方法:

let yourText = "9999999999\u{e2}"
textField.text =  yourText.components(separatedBy: CharacterSet.decimalDigits.inverted) [0]

检查组件的功能(separatedBy :) https://developer.apple.com/documentation/foundation/nsstring/1413214-components

答案 3 :(得分:0)

如果您确定电话号码只有数字(即没有“ - ”或“+”或空格字符),您只需过滤掉不是数字的字符:

let number = "9999999999\u{e2}"
let filteredNumber = number.filter { "0"..."9" ~= $0 } // 9999999999