使用javascript跳过空格

skipping spaces with javascript

本文关键字:空格 javascript 使用      更新时间:2023-09-26

这里我有一个javascript/html代码。我的代码应该从用户那里读取一个或多个邮政编码的字符串,并返回第一个无效的邮政编码。它应该忽略空格。用户只能使用邮政编码48103、48104、48105、48106、48197、48198。其他任何内容都应该无效。我的代码大部分都能工作,除非用户输入多个空格来分隔邮政编码。例如,如果用户输入"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>

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

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

(感谢@HBP的编辑。)

然后您可以替换此代码:

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

…带有:

if (!str.match(pattern))

您的循环:

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!"