You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hu-qi d855c49a75
feat: 升级UI库,完成地址页
5 months ago
..
components/Winglau14-address-auto-parse feat: 升级UI库,完成地址页 5 months ago
changelog.md feat: 升级UI库,完成地址页 5 months ago
package.json feat: 升级UI库,完成地址页 5 months ago
readme.md feat: 升级UI库,完成地址页 5 months ago

readme.md

收货地址解析、快递地址解析、物流地址解析自动识别 支持pc、h5、微信小程序自动提取姓名、电话、地址信息自动识别出省、市、区、街道、姓名、手机号等

Winglau14-address-auto-parse

支持以下数据格式与淘宝、拼多多、1688的电商网站地址格式

  1. 北京市朝阳区xx路姚家园x楼x单元3305上官飞雪15000000000
  2. 北京市朝阳区xx路姚家园x楼x单元3305上官飞雪15000000000邮编038300
  3. 上官飞雪 1351111111 浙江省 杭州市 上城区 xx路x号x幢x楼靠近x幢
  4. 上官飞雪,1351111111,北京市朝阳区富康路姚家园3楼邮编038300
  5. 上官飞雪1351111111北京市朝阳区富康路姚家园3楼0
  6. 北京市朝阳区xx路姚家园x楼1351111111上官飞雪
  7. 北京市朝阳区xx路姚家园x楼150-0000-0000上官飞雪

不支持的数据格式

不支持富康路姚家园3号楼5单元3301后直接加电话 ex.北京市朝阳区富康路姚家园3号楼5单元330115000000000邮编038300

地址切分规则

  1. 省市区(县)+详细地址(不包括楼、单元、室等等)+电话+邮编+姓名
  2. 省市区(县)+详细地址+楼+单元+室等+姓名+电话+邮编

生成数据格式

{
"province": "北京",
"city": "北京市",
"area": "朝阳区",
"details": "xx路姚家园x楼 上官飞雪",
"name": "7.",
"code": "110105",
"__type": "parseByProvince",
"__parse": true,
"mobile": "15000000000",
"zip_code": "",
"phone": ""
}

具体使用 根据需求修改 获取到地址信息调用parse方法即可

<template>
	<view class="content">
		<view class="title">支持以下数据格式(打印结果请在控制台查看)</view>
		<view class="title">
			<view>最新支持数据格式:</view>
			<view>1. 北京市朝阳区xx路姚家园x楼x单元3305上官飞雪15000000000</view>
			<view>2. 北京市朝阳区xx路姚家园x楼x单元3305上官飞雪15000000000邮编038300</view>
			<view>
				3. 上官飞雪<br/>
				1351111111<br/>
				浙江省 杭州市 上城区 xx路x号x幢x楼靠近x幢
			</view>
			<view>4. 上官飞雪,1351111111,北京市朝阳区富康路姚家园3楼邮编038300</view>
			<view>5. 上官飞雪1351111111北京市朝阳区富康路姚家园3楼0</view>
			<view>6. 北京市朝阳区xx路姚家园x楼1351111111上官飞雪</view>
			<view>7. 北京市朝阳区xx路姚家园x楼150-0000-0000上官飞雪</view>
		</view>
		<textarea @change="autoParse" cols="50" rows="10" v-model="address" placeholder="请粘贴您需要识别的地址"></textarea>
		<button @click="autoParse">自动识别</button>
		<view v-if="value" class="title">自动识别结果:</view>
		<!-- <view style="padding-top:30rpx;" v-html="value"></view> -->
		<view v-if="value" style="padding: 30rpx;background: #fafafa;border: 1px solid #eaeefb;margin-top: 30rpx;word-break: break-all;">
			<code v-text="value"></code>
		</view>
	</view>
</template>
<script>
	import {AddressParse} from './lib/addressParseBundle.js';
	export default{
		data(){
			return{
				value:'',
				address:''
			}
		},
		methods:{
			autoParse(){
				if(!this.address){
					return uni.showToast({
						title: '请粘贴您需要识别的地址',
						icon: 'none'
					})
				}
				const address = this.address
				const result = AddressParse.parse(address)
				if(result && result.length){
					let html = ''
					for(let key in result[0]){
						if(result[0][key]){
						   html+=key+`:`+result[0][key]+`<br/>`
						}
					}
					this.value = JSON.stringify(result[0])
				}
			}
		},
		onLoad() {
			
		}
	}
</script>
<style lang="less" scoped>
	.content{
		padding:40rpx;
		box-sizing: border-box;
	}
	textarea{
		border: 1px solid #dbdbdb;
		padding:20rpx;
		width:100%;
		margin:30rpx 0;
		box-sizing: border-box;
	}
	.title{
		font-size:30rpx;
		font-weight:600;
		padding-top: 30rpx;
	}
</style>