Javascript几个正则表达式的具体问题

时间:2017-02-09 23:55:37

标签: javascript regex

如何检查有时在中间有空格的正则表达式,有时不会?例如,如何根据长度验证信用卡号,实际内容并不重要。

目前我正在做



    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;
&#13;
&#13;

如果在输入框中将输入设置为myAge = 0,然后返回空格以便没有数字,则它会一直返回true,有没有办法断言当该框为空时它将返回false ???

非常感谢任何有关任何问题的帮助,谢谢!

2 个答案:

答案 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