- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将用户的信用卡号作为输入。我想允许 16 个数字,并希望在每 4 个数字后面格式化空格。为此,我做了以下工作。
-(void)cardNumberValidation:(id)sender{
UITextField *temp=sender;
if ([temp.text length]>19) {
txtCard.text= [temp.text substringToIndex:[temp.text length] - 1];
}
if ([temp.text length]==4) {
txtCard.text=[NSString stringWithFormat:@"%@ ",temp.text];
}
if ([temp.text length]==9) {
txtCard.text=[NSString stringWithFormat:@"%@ ",temp.text];
}
if ([temp.text length]==14) {
NSString *lastChar = [txtCard.text substringFromIndex:[txtCard.text length] - 1];
txtCard.text=[NSString stringWithFormat:@"%@ ",temp.text];
}
}
但是现在,当用户在输入所有字符后删除字符时,如果它达到 15 个字符,然后用户将再删除一个字符,那么此代码将在其后面添加空格,并且不允许进一步删除它。
任何人都可以给我建议或任何更好的方法来做到这一点。
最佳答案
在 swift
enum CardType: String {
case Unknown, Amex, Visa, MasterCard, Diners, Discover, JCB, Elo, Hipercard, UnionPay
static let allCards = [Amex, Visa, MasterCard, Diners, Discover, JCB, Elo, Hipercard, UnionPay]
var regex : String {
switch self {
case .Amex:
return "^3[47][0-9]{5,}$"
case .Visa:
return "^4[0-9]{6,}([0-9]{3})?$"
case .MasterCard:
return "^(5[1-5][0-9]{4}|677189)[0-9]{5,}$"
case .Diners:
return "^3(?:0[0-5]|[68][0-9])[0-9]{4,}$"
case .Discover:
return "^6(?:011|5[0-9]{2})[0-9]{3,}$"
case .JCB:
return "^(?:2131|1800|35[0-9]{3})[0-9]{3,}$"
case .UnionPay:
return "^(62|88)[0-9]{5,}$"
case .Hipercard:
return "^(606282|3841)[0-9]{5,}$"
case .Elo:
return "^((((636368)|(438935)|(504175)|(451416)|(636297))[0-9]{0,10})|((5067)|(4576)|(4011))[0-9]{0,12})$"
default:
return ""
}
}
}
extension UITextField{
func validateCreditCardFormat()-> (type: CardType, valid: Bool) {
// Get only numbers from the input string
var input = self.text!
let numberOnly = input.stringByReplacingOccurrencesOfString("[^0-9]", withString: "", options: .RegularExpressionSearch)
var type: CardType = .Unknown
var formatted = ""
var valid = false
// detect card type
for card in CardType.allCards {
if (matchesRegex(card.regex, text: numberOnly)) {
type = card
break
}
}
// check validity
valid = luhnCheck(numberOnly)
// format
var formatted4 = ""
for character in numberOnly.characters {
if formatted4.characters.count == 4 {
formatted += formatted4 + " "
formatted4 = ""
}
formatted4.append(character)
}
formatted += formatted4 // the rest
// return the tuple
return (type, valid)
}
func matchesRegex(regex: String!, text: String!) -> Bool {
do {
let regex = try NSRegularExpression(pattern: regex, options: [.CaseInsensitive])
let nsString = text as NSString
let match = regex.firstMatchInString(text, options: [], range: NSMakeRange(0, nsString.length))
return (match != nil)
} catch {
return false
}
}
func luhnCheck(number: String) -> Bool {
var sum = 0
let digitStrings = number.characters.reverse().map { String($0) }
for tuple in digitStrings.enumerate() {
guard let digit = Int(tuple.element) else { return false }
let odd = tuple.index % 2 == 1
switch (odd, digit) {
case (true, 9):
sum += 9
case (true, 0...8):
sum += (digit * 2) % 9
default:
sum += digit
}
}
return sum % 10 == 0
}
}
关于ios - 验证信用卡号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23888682/
由于数字也可以是小数,这让我认为 CC 数字应该是整数。这是有道理的,因为我认为任何信用卡都不会以 0 开头,而且它们都遵循相同的模式: 4444333322221111 所以我猜它们是一个整数,但我
有没有办法让 paypal 在后台处理我的信用卡,而无需用户离开我的网站或拥有 paypal 帐户? 或者此功能仅适用于“Pro”帐户? 谢谢。 最佳答案 这也适用于普通帐户。 直接支付用户体验 直接
有没有人有任何使用信用卡文件服务的经验,处理信用卡信息的存储以进行持续购买? 我们正在寻找一种解决方案,该解决方案可以通过 Web 服务或类似服务与自定义 ASP.NET 应用程序集成,但从我们这边移
我想知道如何在不使用 Apple 的应用内购买机制的情况下向用户询问信用卡详细信息并向他收费。 我的想法是将用户的信用卡发布到我的在线信用计费系统,并在网站上进行交易,在后台进行交易,然后将交易结果报
我想对 Guest Checkout 用户使用 Paypal 定期付款。也就是说,用户可以在没有任何 Paypal 帐户的情况下订阅我的计划。他也不需要创建 Paypal 帐户。只有他/她的信用卡 最
我在我的网站中集成了 NVP 方法,使用信用卡和 PayPal 进行定期付款。 完成付款后,新的用户资料将在商家的 PayPal 帐户中创建。但立即在 PayPal 网站中添加了第二行,显示配置文件的
当用户直接付款时(以客人身份购买 - 用信用卡付款),默认情况下,用户需要在转到信用卡号、csc 等之前填写信用卡帐单地址和电话号码。实际上我不需要真的想要账单地址,我可以直接将用户指向信用卡号,cs
通常,作为一个普通的应用程序,使用 active-merchant 和任何支付网关,我们提供一个基本的表格来填写属性: cc = CreditCard.new( :first_name => 'S
我使用的 iFrame 托管在另一个具有 SSL 证书的域上。在使用 iFrame 的页面上,我在 Google Chrome 的域旁边收到“不安全”消息,并在控制台日志中收到以下警告: This p
在我的 RoR 应用程序中存储我的客户的信用卡和账单信息的最佳做法是什么? 实际上,我正在使用 ruby 1.9.2、Rails 3.2.3,我正在考虑在 Heroku 中部署我的应用程序。 我们
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 11年前关闭。 Improve this qu
这是一个关于信用卡处理的问题。我们正在使用 AVS 并发现每笔因 AVS 失败的交易都会导致保留客户卡上的总金额。多次失败意味着多次保留。 发生这种情况是因为仅在 AUTH 完成后才检查 AVS。因此
假设我们有一个适用于手机的应用程序。制作此应用程序的原因之一是在特定网站的交付最后步骤中插入用户的一些关键信息,而这些信息并非来自应用程序创建者。它填写了地址、信用卡和真实姓名。在该网站购买商品后,应
我终于想出了如何使用这个 tutorial 实现 Stripes Monthly Billing 目前我的#new_subscription 表单和编辑表单的提交按钮创建信用卡数据并将其发送到 Str
我在 PayPal Pro/Express Omnipay Gateway 上测试沙盒信用卡时遇到问题。我正在使用在 Laravel 上运行的 October CMS,据我所知,它使用 Laravel
我希望用户能够通过 Windows Phone 应用程序购买门票,并且不想为此目的使用网络浏览器。票价可能不同。 是否可以通过电子钱包应用程序处理付款或需要与某些处理系统集成? 另请建议在 Windo
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 6 年前。
我是一名优秀的程序员,十分优秀!