当前位置: 代码迷 >> 综合 >> 收货人发货信息分解 jq ecshop
  详细解决方案

收货人发货信息分解 jq ecshop

热度:41   发布时间:2024-03-06 13:48:48.0
function ajaxAddress(address) {console.log("api/ajaxAddress.php?str=" + address);$.ajax({type: "GET",url: "api/ajaxAddress.php?str=" + address,cache: false,dataType: 'json',data: {},success: function(data) {console.log(data);if (data.err == 0) {console.log(0);$('#region_info_0').html(data.html);$("input[name='address']").val(data.address);$("select[name='country']").val(1);$("select[name='province']").val(data.province_id);$("select[name='city']").val(data.city_id);$("select[name='district']").val(data.district_id);} else {console.log(1);}}});
}
$(function(){$("#address_1_0").change(function() {var info = $.trim($(this).val());console.log(info);ppaddress(info, 1);});
})
function ppaddress(address_id, id) {var info = $('#address_1_0').val();info = $.trim(info);$("input[name='consignee']").val('');$("input[name='address']").val('');$("input[name='mobile']").val('');$("input[name='tel']").val('');$("input[name='zipcode']").val('');if (info.toString().indexOf('\n') >= 0) {var arr = info.split('\n');console.log(arr);if (info.toString().indexOf(":") >= 0) {$.each(arr,function(i, val) {console.log(i + '----' + val);if (val.indexOf('收货人:') >= 0) {var value = val.split(':');var reg = /^([\u4E00-\u9FA5A-Za-z0-9_]{1,})+((\(0\d{3,4}\)|0\d{2,3}-|\s)?\d{7,14})/;var Iin = value[1].match(reg);var Ii = value[1].match(/^([\u4E00-\u9FA5A-Za-z0-9_]{1,})+(1[345789]\d{9})/);if (Iin !== null) {$("input[name='consignee']").val(Iin[1]);$("input[name='tel']").val(Iin[2]);}else if(Ii !== null) {$("input[name='consignee']").val(Ii[1]);$("input[name='mobile']").val(Ii[2]);} else {$("input[name='consignee']").val($.trim(value[1]));}}if (val.indexOf('退货收件人:') >= 0) {var value = val.split(':');$("input[name='consignee']").val($.trim(value[1]));}if (val.indexOf('地址:') >= 0 || val.indexOf('收货地址:') >= 0) {var value = val.split(':');ajaxAddress($.trim(value[1]));}if (val.indexOf('手机:') >= 0 || val.indexOf('手机号:') >= 0 || val.indexOf('联系电话:') >= 0) {var value = val.split(':');$("input[name='mobile']").val($.trim(value[1]));}if (i == 0 && val.indexOf(":") == -1) {var Ii = info.match(/^([\u4E00-\u9FA5A-Za-z0-9_]{1,})+(1[345789]\d{9})/);if (Ii !== null) {console.log(Ii);$("input[name='consignee']").val(Ii[1]);$("input[name='mobile']").val(Ii[2]);} else {$("input[name='consignee']").val($.trim(val));}}})} else if (info.indexOf(":") >= 0) {$.each(arr,function(i, val) {console.log(i + '----' + val);if (val.indexOf('收货人:') >= 0) {var value = val.split(':');$("input[name='consignee']").val($.trim(value[1]));}if (val.indexOf('地址:') >= 0 || val.indexOf('收货地址:') >= 0) {var value = val.split(':');ajaxAddress($.trim(value[1]));}if (val.indexOf('手机:') >= 0 || val.indexOf('手机号:') >= 0 || val.indexOf('联系电话:') >= 0) {var value = val.split(':');$("input[name='mobile']").val($.trim(value[1]));}})} else {$.each(arr,function(i, val) {console.log(i + '----' + val);if (val !== '' && IsAddress(val)) {ajaxAddress($.trim(val));}if (val !== '' && val.indexOf(',') >= 0 && !IsAddress(val)) {console.log(1);var value = val.split(',');$("input[name='consignee']").val($.trim(value[0]));$("input[name='mobile']").val($.trim(value[1]));} else if (val !== '' && val.indexOf(',') >= 0 && !IsAddress(val)) {console.log(2);var value = val.split(',');$("input[name='consignee']").val($.trim(value[0]));$("input[name='mobile']").val($.trim(value[1]));} else if (val !== '' && val.indexOf(' ') >= 0 && !IsAddress(val)) {console.log(3);var value = val.split(' ');$("input[name='consignee']").val($.trim(value[0]));$("input[name='mobile']").val($.trim(value[1]));} else {if (/^[0-9][0-9]{5}$/.test(val)) {$("input[name='zipcode']").val(val);} else if (/^1[34578]\d{9}$/.test(val)) {$("input[name='mobile']").val(val);} else if (/^((0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/.test(val)) {$("input[name='tel']").val(val);} else if (val !== '' && !IsAddress(val)) {console.log(val);var Ii = val.match(/^([\u4E00-\u9FA5A-Za-z0-9_]{1,})+(1[345789]\d{9})/);if (Ii !== null) {$("input[name='consignee']").val(Ii[1]);$("input[name='mobile']").val(Ii[2]);} else {$("input[name='consignee']").val($.trim(val));}}}})}} else if (info.indexOf(',') >= 0) {var arr = info.split(',');console.log('+++++++++++++++++++++++++++++');console.log(arr);if (arr.length >= 5) {var newstr = '';$.each(arr,function(index, val) {console.log(index + '----' + val);console.log(val);val = $.trim(val);if (index == 0) {$("input[name='consignee']").val(val);} else {if (/^[0-9][0-9]{5}$/.test(val)) {$("input[name='zipcode']").val(val);// } else if (/^1[34578]\d{9}$/.test(val)) {//  var validateReg = /^((\+?86)|(\(\+86\)))?1\d{10}$/;// } else if (/^((0\d{2,3})-)(1[34578]\d{9})$/.test(val)) {} else if (/^((+86)|(86-))?(1[34578]\d{9})$/.test(val)) {$("input[name='mobile']").val(val);console.log(index + '----' + val);} else {newstr += val;}}});if (newstr !== '') {ajaxAddress($.trim(newstr));}} else {$.each(arr,function(index, val) {console.log(val);val = $.trim(val);if (/^[0-9][0-9]{5}$/.test(val)) {$("input[name='zipcode']").val(val);// } else if (/^1[34578]\d{9}$/.test(val)) {} else if (/^((\\+86)|(86-))?[1][3456789][0-9]{9}$/.test(val)) {// } else if (/^((+86)|(86-))+(1[34578]\d{9})$/.test(val)) {// } else if (/^((0\d{2,3})-)(1[34578]\d{9})$/.test(val)) {$("input[name='mobile']").val(val);} else if (/^((0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/.test(val)) { ///^((0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/$("input[name='tel']").val(val);} else {if (val !== '' && IsAddress(val)) {ajaxAddress($.trim(val));}if (val !== '' && !IsAddress(val)) {console.log(val);val=val.replace(/\s/g,"");var reg = /^([\u4E00-\u9FA5A-Za-z0-9_]{1,})+((\(0\d{3,4}\)|0\d{2,3}-|\s)?\d{7,8})/;var Iin = val.match(reg);var Ii = val.match(/^([\u4E00-\u9FA5A-Za-z0-9_]{1,})+(1[345789]\d{9})/);if(Ii !== null) {$("input[name='consignee']").val(Ii[1]);$("input[name='mobile']").val(Ii[2]);} else {$("input[name='consignee']").val($.trim(val));}}}})}} else if (info.indexOf(',') >= 0) {var arr = info.split(',');console.log(arr.length);if (arr.length >= 5) {var newstr = '';$.each(arr,function(index, val) {console.log(val);val = $.trim(val);if (index == 0) {$("input[name='consignee']").val(val);} else {if (/^[0-9][0-9]{5}$/.test(val)) {$("input[name='zipcode']").val(val);} else if (/^1[34578]\d{9}$/.test(val)) {$("input[name='mobile']").val(val);} else {newstr += val;}}});if (newstr !== '') {ajaxAddress($.trim(newstr));}} else {$.each(arr,function(index, val) {console.log(val);val = $.trim(val);if (/^[0-9][0-9]{5}$/.test(val)) {$("input[name='zipcode']").val(val);} else if (/^1[34578]\d{9}$/.test(val)) {$("input[name='mobile']").val(val);} else {if (val !== '' && IsAddress(val)) {ajaxAddress($.trim(val));}if (val !== '' && !IsAddress(val)) {$("input[name='consignee']").val(val);}}})}} else if (info.indexOf(' ') >= 0) {var arr = info.split(' ');console.log(arr);$.each(arr,function(index, val) {console.log(val);val = $.trim(val);var Ii = info.match(/^([\u4e00-\u9fa5]{1,})+(1[345789]\d{9})+([\s\u4E00-\u9FA5A-Za-z0-9_]{3,})/);console.log(Ii);if (Ii !== null) {$("input[name='consignee']").val(Ii[1]);$("input[name='mobile']").val(Ii[2]);ajaxAddress($.trim(Ii[3]));}else{if (/^[0-9][0-9]{5}$/.test(val)) {$("input[name='zipcode']").val(val);} else if (/^1[34578]\d{9}$/.test(val)) {$("input[name='mobile']").val(val);} else {if (val !== '' && IsAddress(val)) {ajaxAddress($.trim(val));}if (val !== '' && !IsAddress(val)) {$("input[name='consignee']").val(val);}}}})} else {console.log(info);var Ii = info.match(/^([\u4e00-\u9fa5]{1,})+(1[345789]\d{9})+([\u4E00-\u9FA5A-Za-z0-9_]{3,})/);if (Ii !== null) {console.log(Ii);$("input[name='consignee']").val(Ii[1]);$("input[name='mobile']").val(Ii[2]);ajaxAddress(Ii[3]);}}
}//判断是否为地址格式
function IsAddress(str) {var is = 0;var priceA = ["北京", "安徽", "福建", "甘肃", "广东", "广西", "贵州", "海南", "河北", "河南", "黑龙江", "湖北", "湖南", "吉林", "江苏", "江西", "辽宁", "内蒙古", "宁夏", "青海", "山东", "山西", "陕西", "上海", "四川", "天津", "西藏", "新疆", "云南", "浙江", "重庆", "香港", "澳门", "台湾"];$.each(priceA,function(index, val) {if (str.indexOf(val) >= 0) {is = 1;}});return is;
}
 <textarea rows="6" cols="150" name="address_1" id="address_1_{$sn}" onClick="clearAddress(this)" style="padding:10px;color:#999;">提示:智能识别并非百分百精准,还需人工核验信息。  也可选择自己对应的平台地址格式实现自动填写,这种专用格式相比智能识别更加精准。</textarea>
<?php
/*** ECSHOP 获取信息* $Author: liuhui $* $Id: cainiao.php 17063 2018年2月7日01:05:56 liuhui $*/
define('IN_ECS', true);
require ('./init.php');$result=array('err'=>0,'err_msg'=>'','country_id'=>1,'province_name'=>'','province_id'=>0,'city_name'=>'','city_id'=>0,'district_name'=>'','district_id'=>0,'address'=>'');
$string=$_REQUEST['str'];
if (!$string) exit('');$receiver_state = mb_substr($string, 0, 6);
if ($receiver_state == '上海') {$receiver_state2 = mb_substr($string, 0, 15);if ($receiver_state2 <> '上海上海市') {$receiver_state1 = mb_substr($string, 0, 9);if ($receiver_state1 == '上海市') {$string = '上海' . $string;} else {$word = $string;$reWord = "上海上海市";$pos = strpos($string, $reWord);$string = substr_replace($word, $reWord, $pos, 6);}}
}/*echo $string;echo '<hr>';*/
$A = array();
$sqla = array();
//$sqla[]="`name` LIKE '%$receiver_state%' ";
$sql = "SELECT region_id,parent_id,region_name,region_type from `ecs_region` where (`region_name` LIKE '%$receiver_state%' ) and region_type in(1);";
//echo $sql;
//echo '<hr>';
$row = $db->getrow($sql);$result['province_id']=$row['region_id'];
$result['province_name']=$row['region_name'];$provinceId = $row['region_id'];
$A[$row['region_type']] = $row;
$district = $city = array();$sql = "SELECT * FROM `ecs_region` where  `parent_id`='$provinceId' and `region_type`=2;";
//echo $sql.'<br>';
$r = $db->getAll($sql);
foreach ($r as $row) {if (strpos($string, $row['region_name']) !== false) {$city1 = $row;break;}
}if($city1[region_id]){$sql = "SELECT region_id,parent_id,region_name,region_type FROM `ecs_region` where  `parent_id` in($city1[region_id]) and `region_type`=3 ;";
}else{$sql = "SELECT region_id,parent_id,region_name,region_type from `ecs_region` where  `parent_id` in(SELECT region_id as parent_id from `ecs_region` where  `parent_id`='$provinceId' and `region_type`=2) and `region_type`=3;";
}
$sql11 = "SELECT region_id,parent_id,region_name,region_type from `ecs_region` where  `parent_id` in(SELECT region_id as parent_id from `ecs_region` where  `parent_id`='$provinceId' and `region_type`=2) and `region_type`=3;";
$r = $db->getAll($sql);
/*echo '<pre>';print_r($r);echo '</pre>';*/
foreach ($r as $row) {if (strpos($string, $row['region_name']) !== false) {$district = $row;break;}elseif (strpos($string, mb_substr($row['region_name'], 0, 6)) !== false) {//echo '++++++++++++++++++++';//不完整匹配$string= str_replace(mb_substr($row['region_name'], 0, 6),$row['region_name'],$string);$district = $row;break;}
}$result['district_id']=$district['region_id'];
$result['district_name']=$district['region_name'];$sql = "SELECT region_id,parent_id,region_name,region_type from `ecs_region` where `region_id`='$district[parent_id]' and `region_type`=2;";
$row1 = $db->getrow($sql);
$result['city_id']=$row1['region_id'];
$result['city_name']=$row1['region_name'];
$city = $row1;
$A[$city['region_type']] = $city;
$A[$district['region_type']] = $district;
//echo '<hr>' . $string;/*echo '<pre>';print_r($A);echo '</pre>';*/
$str = '';
$newstr = '';
$newstrA = array();
foreach ($A as $kk => $v) {$str.= $v['region_name'];$newstr.= $v['region_name'] . ' ';$newstrA[]=$v['region_name'];
}// 零 limit
//print_r(explode($newstrA[2],$string,2));$X=explode($newstrA[2],$string,2);
if($X[0]==$newstrA[0].$newstrA[1]){
}else{$X[0]=$newstrA[0].$newstrA[1];$string=$X[0].$newstrA[2].$X[1]	;
}
/*echo '<hr>' . $str;echo '<hr>' . $string;*/
if (strpos($string, $str) !== false) {$district = $row;$receiver_address = str_replace($str, '', $string);$newstr.= $receiver_address;
}
$result['address']=$receiver_address;
/*echo '<hr>' . $receiver_address;echo '<hr>' . $str;echo '<hr>' . $newstr;echo $newstr;*/
$sql = "SELECT region_id,region_name from `ecs_region` where  `region_type`=2 and parent_id='$result[province_id]';";
$city_list = $db->getAll($sql);
$sql = "SELECT region_id,region_name from `ecs_region` where  `region_type`=3 and  parent_id='$result[city_id]';";
$district_list = $db->getAll($sql);$html='<tr><td bgcolor="#ffffff" align="right" width="120">配送区域<font style="color:red;"> *</font></td><td colspan="3" bgcolor="#ffffff"><select name="country" id="selCountries_0" onChange="region.changed(this, 1, \'selProvinces_0\')" style="border:1px solid #ccc;"><option value="0">请选择</option><option value="1" >中国</option></select><select name="province" id="selProvinces_0" onChange="region.changed(this, 2, \'selCities_0\')" style="border:1px solid #ccc;"><option value="0">请选择</option><option value="2">北京</option><option value="3">安徽省</option><option value="4">福建省</option><option value="5">甘肃省</option><option value="6">广东省</option><option value="7">广西壮族自治区</option><option value="8">贵州省</option><option value="9">海南省</option><option value="10">河北省</option><option value="11">河南省</option><option value="12">黑龙江省</option><option value="13">湖北省</option><option value="14">湖南省</option><option value="15">吉林省</option><option value="16">江苏省</option><option value="17">江西省</option><option value="18">辽宁省</option><option value="19">内蒙古自治区</option><option value="20">宁夏回族自治区</option><option value="21">青海省</option><option value="22">山东省</option><option value="23">山西省</option><option value="24">陕西省</option><option value="25">上海</option><option value="26">四川省</option><option value="27">天津</option><option value="28">西藏自治区</option><option value="29">新疆维吾尔自治区</option><option value="30">云南省</option><option value="31">浙江省</option><option value="32">重庆</option><option value="33">香港特别行政区</option><option value="34">澳门特别行政区</option><option value="35">台湾省</option><option value="3107"></option><option value="3925">海外</option></select><select name="city" id="selCities_0" onChange="region.changed(this, 3, \'selDistricts_0\')" style="border:1px solid #ccc;"><option value="0">请选择</option>';
foreach($city_list as $key=>$val){$html.='<option value="'.$val['region_id'].'">'.$val['region_name'].'</option>';
}
$html.='</select><select name="district" id="selDistricts_0" style="border: 1px solid rgb(204, 204, 204);"><option value="0">请选择</option>';
foreach($district_list as $key=>$val){$html.='<option value="'.$val['region_id'].'">'.$val['region_name'].'</option>';
}$html.='</select></td></tr>';
$result['html']=$html;/*echo '<pre>';print_r($result);echo '</pre>';*/
echo json_encode($result);
exit;