不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
快递寄件地址&收货地址解析思路和实现脚本
编辑:dnawo 日期:2022-09-14
快递寄件地址和收货地址的内容主要有3项:姓名、手机和联系地址,开始以为从一段文字中提取这些内容不是什么难事,但真操作起来发现并没那么简单,总结了下,我们平时输写的地址格式主要有以下几种:
引用内容
下边为我思考后得出的几种解析方法:
方法一:借助手机号位置解析法

方法二:升级优化


①.张三 13800000000 浙江省杭州市西湖区北山街1号
②.张三,13800000000,浙江省杭州市西湖区北山街1号
③.张三13800000000浙江省杭州市西湖区北山街1号
④.浙江省杭州市西湖区北山街1号 张三 13800000000
⑤.浙江省 杭州市 西湖区 北山街1号 张三 13800000000
⑥.张三 浙江省 杭州市 西湖区 北山街1号 13800000000
⑦.张三浙江省杭州市西湖区北山街1号13800000000
⑧.浙江省杭州市西湖区北山街1号张三13800000000
②.张三,13800000000,浙江省杭州市西湖区北山街1号
③.张三13800000000浙江省杭州市西湖区北山街1号
④.浙江省杭州市西湖区北山街1号 张三 13800000000
⑤.浙江省 杭州市 西湖区 北山街1号 张三 13800000000
⑥.张三 浙江省 杭州市 西湖区 北山街1号 13800000000
⑦.张三浙江省杭州市西湖区北山街1号13800000000
⑧.浙江省杭州市西湖区北山街1号张三13800000000
下边为我思考后得出的几种解析方法:
方法一:借助手机号位置解析法

复制内容到剪贴板
程序代码

var adrFormat = function(adr){
let [name, tel, address] = ["", "error-"+adr, ""];
let pvs = ["安徽","北京","重庆","福建","甘肃","广东","广西","贵州","海南","河北","河南","黑龙江","湖北","湖南","吉林","江苏","江西","辽宁","内蒙古","宁夏","青海","山东","山西","陕西","上海","四川","天津","西藏","新疆","云南","浙江"];
adr = adr.trim();
adr = adr.replace(/\s+/g, ",").replace(/,/g, ",").replace(/,+/g, ",");
adr = adr.replace(/[^-,\w\u4e00-\u9fa5]/g, "");
adr = adr.replace(/(收货人)|(手机号码)|(所在地区)|(详细地址)/g,""); //淘宝专用
let regTel = /[\d\-]{7,}/;
if((/[^\d]+[\d\-]{7,}[^\d]+/).test(adr)){
adr = adr.replace(/,/g,"");
tel = regTel.exec(adr)[0];
name = adr.split(tel)[0];
address = adr.split(tel)[1];
}else if((/^[\d\-]{7,}/).test(adr) || (/[\d\-]{7,}$/).test(adr)){
tel = regTel.exec(adr)[0];
adr = adr.replace(tel,"").replace(/^,/g,"").replace(/,$/g,"");
let arr = adr.split(",");
if(arr.length == 2){
name = arr[0];
address = arr[1];
}else if(arr.length > 2){
for(let item of pvs){
if(adr.indexOf(item) != -1){
name = (adr.indexOf(item) == 0) ? arr[arr.length - 1] : arr[0];
address = arr.join("").replace(name, "");
break;
}
}
}else{
for(let item of pvs){
if(adr.indexOf(item) > 0){
address = adr.substring(adr.indexOf(item));
name = adr.replace(address, "");
break;
}
}
}
}
if(name.length > address.length){
[name, address] = [address, name];
}
return [name, tel, address];
}
let [name, tel, address] = ["", "error-"+adr, ""];
let pvs = ["安徽","北京","重庆","福建","甘肃","广东","广西","贵州","海南","河北","河南","黑龙江","湖北","湖南","吉林","江苏","江西","辽宁","内蒙古","宁夏","青海","山东","山西","陕西","上海","四川","天津","西藏","新疆","云南","浙江"];
adr = adr.trim();
adr = adr.replace(/\s+/g, ",").replace(/,/g, ",").replace(/,+/g, ",");
adr = adr.replace(/[^-,\w\u4e00-\u9fa5]/g, "");
adr = adr.replace(/(收货人)|(手机号码)|(所在地区)|(详细地址)/g,""); //淘宝专用
let regTel = /[\d\-]{7,}/;
if((/[^\d]+[\d\-]{7,}[^\d]+/).test(adr)){
adr = adr.replace(/,/g,"");
tel = regTel.exec(adr)[0];
name = adr.split(tel)[0];
address = adr.split(tel)[1];
}else if((/^[\d\-]{7,}/).test(adr) || (/[\d\-]{7,}$/).test(adr)){
tel = regTel.exec(adr)[0];
adr = adr.replace(tel,"").replace(/^,/g,"").replace(/,$/g,"");
let arr = adr.split(",");
if(arr.length == 2){
name = arr[0];
address = arr[1];
}else if(arr.length > 2){
for(let item of pvs){
if(adr.indexOf(item) != -1){
name = (adr.indexOf(item) == 0) ? arr[arr.length - 1] : arr[0];
address = arr.join("").replace(name, "");
break;
}
}
}else{
for(let item of pvs){
if(adr.indexOf(item) > 0){
address = adr.substring(adr.indexOf(item));
name = adr.replace(address, "");
break;
}
}
}
}
if(name.length > address.length){
[name, address] = [address, name];
}
return [name, tel, address];
}
方法二:升级优化

复制内容到剪贴板
程序代码

var adrFormat = function(adr){
let [name, tel, address] = ["", "error-"+adr, ""];
let pvs = ["安徽","北京","重庆","福建","甘肃","广东","广西","贵州","海南","河北","河南","黑龙江","湖北","湖南","吉林","江苏","江西","辽宁","内蒙古","宁夏","青海","山东","山西","陕西","上海","四川","天津","西藏","新疆","云南","浙江"];
adr = adr.trim();
adr = adr.replace(/\s+/g, ",").replace(/,/g, ",").replace(/,+/g, ",");
adr = adr.replace(/[^-,\w\u4e00-\u9fa5]/g, "");
adr = adr.replace(/(收货人)|(手机号码)|(所在地区)|(详细地址)/g,""); //淘宝专用
let regTel = /[\d\-]{7,}/;
if(regTel.test(adr)){
tel = regTel.exec(adr)[0];
adr = adr.replace(tel,",").replace(/,+/g, ",").replace(/^,/g,"").replace(/,$/g,"");
let arr = adr.split(",");
if(arr.length == 2){
name = arr[0];
address = arr[1];
}else if(arr.length > 2){
for(let item of pvs){
if(adr.indexOf(item) != -1){
name = (adr.indexOf(item) == 0) ? arr[arr.length - 1] : arr[0];
address = arr.join("").replace(name, "");
break;
}
}
}else{
for(let item of pvs){
if(adr.indexOf(item) > 0){
address = adr.substring(adr.indexOf(item));
name = adr.replace(address, "");
break;
}
}
}
}
if(name.length > address.length){
[name, address] = [address, name];
}
return [name, tel, address];
}
let [name, tel, address] = ["", "error-"+adr, ""];
let pvs = ["安徽","北京","重庆","福建","甘肃","广东","广西","贵州","海南","河北","河南","黑龙江","湖北","湖南","吉林","江苏","江西","辽宁","内蒙古","宁夏","青海","山东","山西","陕西","上海","四川","天津","西藏","新疆","云南","浙江"];
adr = adr.trim();
adr = adr.replace(/\s+/g, ",").replace(/,/g, ",").replace(/,+/g, ",");
adr = adr.replace(/[^-,\w\u4e00-\u9fa5]/g, "");
adr = adr.replace(/(收货人)|(手机号码)|(所在地区)|(详细地址)/g,""); //淘宝专用
let regTel = /[\d\-]{7,}/;
if(regTel.test(adr)){
tel = regTel.exec(adr)[0];
adr = adr.replace(tel,",").replace(/,+/g, ",").replace(/^,/g,"").replace(/,$/g,"");
let arr = adr.split(",");
if(arr.length == 2){
name = arr[0];
address = arr[1];
}else if(arr.length > 2){
for(let item of pvs){
if(adr.indexOf(item) != -1){
name = (adr.indexOf(item) == 0) ? arr[arr.length - 1] : arr[0];
address = arr.join("").replace(name, "");
break;
}
}
}else{
for(let item of pvs){
if(adr.indexOf(item) > 0){
address = adr.substring(adr.indexOf(item));
name = adr.replace(address, "");
break;
}
}
}
}
if(name.length > address.length){
[name, address] = [address, name];
}
return [name, tel, address];
}






评论: 0 | 引用: 0 | 查看次数: 1685
发表评论
请登录后再发表评论!