अपने प्रश्न होता है 2 महत्वपूर्ण भागों:
एक regex से मेल खाता है कि सभी पात्रों लेकिन पहले 6 और पिछले 2
let regexPattern = "(?<=.{6}).(?=.*.{2}$)"
और
एक विस्तार पर String
लेता है कि regex और मास्क यह:
extension String {
func masked(matching regexPattern: String, with template: String = "*") throws -> String {
let regex = try NSRegularExpression(pattern: regexPattern, options: NSRegularExpression.Options.caseInsensitive)
let range = NSMakeRange(0, count)
return regex.stringByReplacingMatches(in: self, options: [], range: range, withTemplate: template)
}
}
उपयोग:
let cardNumber = "5890040000000016"
let regexPattern = "(?<=.{6}).(?=.*.{2}$)"
print("Output:", try! cardNumber.masked(matching: regexPattern))
आउटपुट: 589004********16
#"..."#
के बजाय"..."
क्योंकि कष्टप्रद चरित्र से बचने के लिए regex