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;