首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用javascript跳过空格

用javascript跳过空格
EN

Stack Overflow用户
提问于 2015-03-25 14:52:39
回答 2查看 215关注 0票数 0

这里我有一个javascript/html代码。我的代码应该从用户读取一个或多个邮政编码的字符串,并返回第一个无效的邮政编码。它应该忽略空间。用户只能使用邮政编码48103、48104、48105、48106、48197、48198。其他的都应该是无效的。我的代码主要是起作用的,除非用户输入一个以上的空间来分隔邮政编码。例如,如果用户输入"48103,空间,98324“,我的程序应该返回98324,但它只是返回空间。有人能帮忙吗?谢谢

代码语言:javascript
运行
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-25 14:58:31

你的循环:

代码语言:javascript
运行
复制
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 != " ")

代码语言:javascript
运行
复制
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!"

票数 1
EN

Stack Overflow用户

发布于 2015-03-25 14:56:54

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

代码语言:javascript
运行
复制
array = usr.split(/ +/g);

(感谢@HBP的编辑。)

然后,您可以替换以下代码:

代码语言:javascript
运行
复制
if (!str.match(pattern) && str != " ")

…通过以下方式:

代码语言:javascript
运行
复制
if (!str.match(pattern))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29259047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档