如何检查有时在中间有空格的正则表达式,有时不会?例如,如何根据长度验证信用卡号,实际内容并不重要。
目前我正在做
var pattern = /^\s*\d{4} \d{4} \d{4} \d{4}\s*$/;
var result = pattern.test(CC);
if (result) {/* do thing */

如果该号码看起来像XXXX XXXX XXXX XXXX,则返回true。但是,如果我执行更多XXXX,则保持返回true,因此" XXXX XXXX XXXX XXXX XXXX"仍然是真的。我还需要弄清楚如何使XXXXXXXXXXXXXXXX返回true。
我还有另一个难题,这可能更简单。
{
if(myAge >= 0 && myAge <= 118)
{
HTML.innerHTML = "";
}
else
HTML.innerHTML = "Invalid age";
}
&#13;
如果在输入框中将输入设置为myAge = 0,然后返回空格以便没有数字,则它会一直返回true,有没有办法断言当该框为空时它将返回false ???
非常感谢任何有关任何问题的帮助,谢谢!
答案 0 :(得分:0)
试试这个:
var pattern = /^\s*(?:\d{4}\s?){4}\s*$/;
说明:
^ : from the begining
\s*: spaces (0 or more)
(?:\d{4}\s?){4}: (?:...) means a group that will not be captured (will serve just for the repeatitions)
\d{4}: 4 digits
\s? : a space (optional)
{4} : 4 times (4 of whatever in parentesis)
\s*: spaces (0 or more)
$ : the end
您必须检查myAge
是否为有效号码(使用isNaN
),如下所示:
// if the myAge is not a number, less than 0 or greater than 118, then it's invalid
if(isNaN(myAge) || myAge < 0 || myAge > 118)
{
HTML.innerHTML = "Invalid age";
}
else
HTML.innerHTML = "Valid age";
答案 1 :(得分:0)
如果我从根本上得到你,你想要这个/\b\d{4}\s*\d{4}\s*\d{4}\s*\d{4}\b/g
检查是Link