1

正規表現を使用して、VISA^4[0-9]{15}$から始まる 16 桁のクレジット カード情報を確認しています。4

この式は4141414141414141aa、有効なクレジット カード番号の末尾にあるアルファベット文字を受け入れるため、 which is wrong のようなクレジット カード番号を受け入れます。

これを修正するにはどうすればよいですか?

4

2 に答える 2

0

Javaで作業している場合、アンカーは^and$ではなく、\Aand\zであるため、正規表現は次のようになります。

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

また

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

Javascriptでは、アンカーは実際に正規表現^を作成する必要があります。$

/^4\d{15}$/

私のFirebugJavascriptコンソールでテストしました:

>>> var val1='4141414141414141';
>>> var val2='4141414141414141aa';
>>> /^4\d{15}$/.test(val1);
true
>>> /^4\d{15}$/.test(val2);
false
于 2012-07-27T22:39:54.450 に答える
0

\bJavaScript で単語の先頭と末尾を一致させるために使用できます。したがって、次のようになります。

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

} else {
    // No match

}

http://tools.twainscanning.com/getmyregexによると

于 2015-12-01T07:58:19.550 に答える