gpt4 book ai didi

javascript - 确定 Javascript 数组的变体

转载 作者:行者123 更新时间:2023-11-28 20:16:27 24 4
gpt4 key购买 nike

我有一个警报,该警报依赖于包含美国 50 个国家中大约 38 个国家的数组,它工作正常(感谢你们出色的人的帮助),但现在我担心用户可能会输入我当前使用的格式的变体是两个大写字母(即 WA、OR、GA 等)。如果他们要输入小写字母(即 wa、or、ga)或者大写和小写字母的组合(即 Wa、Or、Ga)或带有符号(即 WA - 华盛顿、OR - 俄勒冈、GA - 乔治亚),该怎么办?想知道是否有一种更准确的方法可以捕获所有变化。

我指的是最后一个警报,位于底部指向#address_province。

请注意,我对使用 Javascript 和 jQuery 非常陌生,因此非常感谢您提供的详细信息。

提前非常感谢您。

<script>
// Hides shipping info fieldset if ship to billing is checked
$(function () {
$("#ship_to_billing").change(function () {
if ($(this).is(":checked")) $("#shipping_info").hide();
else $("#shipping_info").show();
});
});

// Validates address fields are filled out unless ship to billing is checked...
function validateShipping() {
if (!$("#ship_to_billing").is(":checked")) {
var inputs = $("#shipping_info input");
var ready = true;
inputs.each(function () {
if ($(this).val() == '') {
ready = false;
return false;
}
});
if (!ready) {
alert("Please tell us where to send this. Either choose ship to Billing Address or fill out both the Recipient Name as well as Shipping Address fields. Thanks!");
return false;
}
}
// Makes sure age verification is checked
if (!$('#age_verification').is(':checked')) {
alert("Please verify you are 21 years of age or older.");
return false;
}
// Confirms province is allowed for wine shipping
var states = ["AK", "AZ", "CA", "CO", "CT", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "LA", "ME", "MD", "MI", "MN", "MO", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OR", "SC", "TN", "TX", "VT", "VA", "WA", "WV", "WI", "WY"];
if ($.inArray($("#address_province").val(), states) <0) {
alert("Shipping gifts containing alcohol to this state is prohibited by law. Please choose another item.");
return false;
}
return true;
}

</script>

最佳答案

可以使用 String.toUpperCase 处理案例问题功能。您只需获取他们输入的值,将其转换为大写,然后将其与数组中的值进行比较。因此,无论他们输入 WA、Wa、wa 还是 wA,您都会使用 WA 进行比较。

用户以其他格式输入值,例如 WA - Washington可以通过几种方式处理。一种解决方案是简单地采用前两个字符(因此您会得到 WA ),但如果它们单独输入州名称,则不起作用;它适用于华盛顿,但不适用于佐治亚州。

我倾向于使用 maxlength 在输入框中强制执行 2 个字符的限制属性( maxlength="2" )。所有浏览器都应该支持这一点,并清楚地表明您需要的是州代码而不是州名称。

最后一个选择是,如果该验证始终适用,则使用 <select>仅包含有效状态的元素。这将完全消除对客户端验证的需要(尽管您仍然需要进行服务器端验证)。

关于javascript - 确定 Javascript 数组的变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19119663/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com