用javascript跳过空格

时间:2015-03-25 14:52:39

标签: javascript html

这里我有一个javascript / html代码。我的代码应该从用户读取一个或多个zipcodes的字符串并返回第一个无效的zipcode。它应该忽略空格。用户只能使用邮政编码48103,48104,48105,48106,48197,48198。其他任何内容都应无效。我的代码大多数工作,除非用户放入多个空格来分隔zipcodes。例如,如果用户输入" 48103,空间,空间,空间,98324"我的程序应该返回98324,但它只返回空格。有人可以帮忙吗?谢谢

<html>
    <head>
        <title>Due 03/30</title>

        <script>

            function test()
            {   

                var usr = prompt("Enter a string of zip codes separated by spaces: ");
                var array = [];
                array = usr.split(" ");
                //alert (array);
                var pattern = /(4810[3-6])|(4819[7-8])/;
                var str;
                var isBad = false;

                var i;
                for (i =0; i < array.length; i++)
                {    
                    str = array[i];
                    if (!str.match(pattern) && str != " ")
                       {  
                          alert ("The zipcode " + str + " is not a valid zipcode!");
                          isBad = true;
                          break;
                       }
                }

                if (isBad === false)
                  alert("All zipcodes are valid");

               }
        </script>
    </head>

    <body>

        <button onClick="test();">Test String</button>

    </body>
</html>

2 个答案:

答案 0 :(得分:2)

使用正则表达式替换拆分中的单个空格的多个空格:

array = usr.split(/ +/g);

(感谢@HBP的编辑。)

然后您可以替换此代码:

if (!str.match(pattern) && str != " ")

... with:

if (!str.match(pattern))

答案 1 :(得分:1)

你的循环:

for (i =0; i < array.length; i++)
{    
    str = array[i];
    if (!str.match(pattern) && str != " ")
       {  
          alert ("The zipcode " + str + " is not a valid zipcode!");
          isBad = true;
          break;
       }
}

应该是:(str != ""不是str != " "

for (i =0; i < array.length; i++)
{    
    str = array[i];
    if (!str.match(pattern) && str != "") // No space
       {  
          alert ("The zipcode " + str + " is not a valid zipcode!");
          isBad = true;
          break;
       }
}

这是因为当您将字符串"JavaScript is Awesome!"拆分为空格时,javascript会将其视为"JavaScript"+Space+"is"+Space+""+Space+"Awesome!"