Вы можете разделить вход, затем использовать some()
и includes()
следующим образом:
var postcodes = ["PR8","PR9","WA11","L1","L2","L20","L80"];
$('#searchForm').submit(function(){
var postcode = $('#searchForm input').val().toUpperCase();
postcode = postcode.trim().includes(' ') ? postcode.split(' ') : postcode.match(/.{1,3}/g);
if(postcode.some(i => postcodes.includes(i))){
$('#result').html('Yes, we cover your area!');
}else{
$('#result').html('Sorry, it looks like we do not cover that area yet.');
}
return false;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form role="search" id="searchForm">
<input type="text" name="s" class="form-control covered-area-search-input" placeholder="Enter the first half of your postcode...">
<input type="submit" value="Search"/>
</form>
<div id="result"></div>
Возможно, разбиение и сопоставление не требуется. Просто проверьте, включает ли текущее значение какой-либо элемент массива.
var postcodes = ["PR8","PR9","WA11","L1","L2","L20","L80"];
$('#searchForm').submit(function(){
var postcode = $('#searchForm input').val().toUpperCase();
if(postcodes.some(i => postcode.includes(i))){
$('#result').html('Yes, we cover your area!');
}else{
$('#result').html('Sorry, it looks like we do not cover that area yet.');
}
return false;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form role="search" id="searchForm">
<input type="text" name="s" class="form-control covered-area-search-input" placeholder="Enter the first half of your postcode...">
<input type="submit" value="Search"/>
</form>
<div id="result"></div>