簡體   English   中英

信用卡信息的正則表達式不應包含字符

[英]Regular Expression for Credit card information should not allow characters

我正在使用正則表達式^4[0-9]{15}$來檢查以4開頭的VISA信用卡信息,該信息長度為16位。

該表達式接受信用卡號,例如4141414141414141aa ,這是錯誤的,因為它在有效信用卡號的末尾接受字母字符。

我該如何解決?

如果您使用Java,則錨點不是^$ ,而是\\A\\z ,因此您的正則表達式將是

"\\A4[0-9]{15}\\z"

要么

"\\A4\\d{15}\\z"

在Javascript中,錨點的確應為^$制作正則表達式:

/^4\d{15}$/

在我的Firebug Javascript控制台中進行了測試:

>>> var val1='4141414141414141';
>>> var val2='4141414141414141aa';
>>> /^4\d{15}$/.test(val1);
true
>>> /^4\d{15}$/.test(val2);
false

您可以使用\\b匹配JavaScript中單詞的開頭和結尾。 因此可以是:

if (/\b4\d{12}(?:\d{3})?\b/.test(subject)) {
    // Successful match

} else {
    // No match

}

根據http://tools.twainscanning.com/getmyregex

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM