2016-02-17 57 views
0

我需要更改特定國家的郵政編碼從vb.net下拉或使用JavaScript我想改變郵政編碼的要求,因爲加拿大和美國做不同。加拿大使用A1A 1A1的格式,例如,如果我從國家選擇加拿大,則應該採用的郵政編碼格式是A1A 1A1,而對於其他國家/地區,則使用zipCodePattern =/^ \ d {5} [AZ] {1} $ |^\ d {5} - \ d {4} $ /;我怎樣才能做到這一點。更改郵編需要輸入的基礎上選擇

我寫此

功能validateZipCode(郵政編碼) {
變種國家=的document.getElementById( 「原產國」);

 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); 
    } 
} 

回答

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>