我需要从vb.net下拉或使用javascript更改特定国家/地区的邮政编码我想更改邮政编码要求,因为加拿大和美国的做法不同。加拿大使用A1A 1A1的格式,例如,如果我从国家选择加拿大的邮政编码格式应该是A1A 1A1,而对于其他国家,它有zipCodePattern = / ^ \ d {5} [AZ] {1} $ |的组合。 ^ \ d {5} - \ d {4} $ /;我怎么能这样做。
我写了这个
function validateZipCode(zipcode)
{
var country = document.getElementById(" lblCountry");
if (country=="Canada")
{
var zipCodePattern = /^[A-Z}{1}[0-9]{1}[A-Z]{1}[ ]{1}[0-9]{1}[A-Z]{1}[0-9]{1}$/;
return zipCodePattern.test(zipcode);
}
else
{
var zipCodePattern = /^\w{6}$|^\d{5}-\d{4}$|^\d{5}$/;
return zipCodePattern.test(zipcode);
}
}
答案 0 :(得分:1)
使用javascript,您可以利用ternary operator
在模式之间切换(使用jQuery,只是因为它更易于阅读)
var pattern = '',
usPattern = '^\\d{5}(-\\d{4})?$',
caPattern = '^[ABCEGHJKLMNPRSTVXY]{1}\\d{1}[A-Z]{1} *\\d{1}[A-Z]{1}\\d{1}$'
// watch for country change
$('select').on('change', function(){
// get the selected country
var val = $(this).val();
// set pattern based on `val` above
pattern = val == 'us' ? usPattern : caPattern;
// apply pattern to input
$('input#postcode').attr('pattern', pattern)
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<select>
<option value="us" selected>US</option>
<option value="ca">CA</option>
</select>
<input id="postcode" type="text" pattern="^\d{5}(-\d{4})?$" required>
<input type="submit">
</form>
&#13;