这里我有一个 javascript/html 代码。我的代码应该从用户那里读取一个或多个邮政编码的字符串,并返回第一个无效的邮政编码。它应该忽略空格。用户只能使用邮政编码 48103、48104、48105、48106、48197、48198。其他任何内容都无效。我的代码大部分都可以工作,除非用户输入多个空格来分隔邮政编码。例如,如果用户输入“48103,space,space,space,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))
关于javascript - 使用 javascript 跳过空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29259047/