沒有人知道在C#中如何查找字符串內的信用卡號碼。 我想阻止用戶在我們的應用程序的評論部分輸入一個CC#並給用戶一個警告.Net正則表達式尋找一個字符串中的信用卡號碼
我在互聯網上搜索的所有正則表達式只在字符串包含信用卡號(「 12345678910「)
例如
字符串評論=」稱爲客戶和給他的信用卡號碼12345678910.I將下訂單的客戶」
在這種情況下,我希望讓用戶知道此評論無法保存,因爲它包含信用卡號碼
這是我,而不是工作
public class CreditCardValidator
{
public CreditCardValidator()
{
//These are the regex for all the avialble Credit cards.http://www.regular-expressions.info/creditcard.html
this.Patterns = new string[] { "^4[0-9]{12}(?:[0-9]{3})?$", "^5[1-5][0-9]{14}$", "^3[47][0-9]{13}$", "^3(?:0[0-5]|[68][0-9])[0-9]{11}$", "^6(?:011|5[0-9]{2})[0-9]{12}$","^(?:2131|1800|35\\d{3})\\d{11}$" };
}
public string[] Patterns { get; set; }
public bool HasCreditCardNumber(string input)
{
foreach (var pattern in Patterns)
{
if (Regex.IsMatch(input, pattern, RegexOptions.Multiline))
{
return true;
}
}
return false;
}
}
感謝您的幫助
構建正則表達式,比較它的輸入,以及是否有匹配會引發錯誤。哪裏有問題? – Eminem
你會考慮哪種類型的信用卡? http://en.wikipedia.org/wiki/Bank_card_number你將不得不爲每種類型的信用卡都有Regexes。 – Shar1er80
用戶在評論中放置信用卡號碼有問題嗎?如果是這樣,這聽起來像是一個培訓/紀律問題,而不是通過嘗試檢測代碼中的信用卡號碼而發生的事情。 –