收货人发货信息分解 jq ecshop

it2023-06-08  74

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;

 

最新回复(0)