我有一个允许城市,州或邮政形式的组合字段。一旦键入,我需要将这些数据解析到其各自的字段中。为了清楚起见,用户应输入城市和州或邮政编码。我的项目负责人希望用户能够在有或没有逗号的情况下进入城市和州。
到目前为止,我有这个:
searchCity = '';
searchState = '';
searchZipCode = '';
searchValue = $('#branchSearchByCityStateZip').val();
if (parseInt(searchValue, 10)) {
searchZipCode = searchValue.substring(0,5);
} else if (searchValue.search(',') != -1) {
searchArray = searchValue.split(',');
searchCity = searchArray[0].trim();
searchState = searchArray[1].trim();
} else if (searchValue.search(' ') != -1) {
searchArray = searchValue.split(' ');
searchCity = searchArray[0].trim();
searchState = searchArray[1].trim();
} else {
$('#branchSearchModal div.branchSearchError').text('*Please enter a City, St or a Zip code').show();
}
if (searchState != '' && searchState.length != 2) {
$('#branchSearchModal div.branchSearchError').text('*Please enter state abbreviation').show();
searchCity = '';
searchState = '';
}
// If user pressed submit but didn't key anything, just close the modal
if (searchCity == '' && searchState == '' && searchZipCode == '') {
$('#branchSearchModal div.branchSearchError').show();
} else {
// Form is good, submit it!
}
这似乎工作得很好,期望用户进入一个有空间的城市,然后在州之前不再使用逗号。 “San Francisco CA”解析为searchCity = San和searchState = Francisco,然后在状态长度验证器中失败。
关于如何处理超过一个字的城市的任何想法?
答案 0 :(得分:1)
如果指定输入缩写状态,则可以从最后开始,在搜索短语中找到前进的第一个空格以获取状态。这只能起作用,因为缩写名称中没有空格。这种方法适用于“纽约纽约”,但适用于“纽约纽约”