添加地址頁面,可以添加復制粘貼,自動識別地址的功能uniapp實現方式

主要用uni.getClipboardData(OBJECT),更多信息可以到uniapp官網查看

以下實現方式? ? ?1利用api,? ? ?2針對判斷


優化方案,在線API

handleConfirm2(){let that = this;promisRequest({url: 'https://wangzc.wang/smAddress',data: {"address": that.inputValueAnalysis},method: "POST"}).then(res => {//賦值that.receiveName=res.data.name;that.receiveTell=res.data.phone;that.receiveAddress=res.data.address;that.addressData=res.data.province+res.data.city+res.data.county;uni.showToast({title:"內容已識別~",icon:"none"})console.log(res)this.handleCancel2();}).finally(()=>{this.handleCancel2();})},

主函數

openPaste(){let that=this;uni.getClipboardData({success: function (res) {let inputStr=res.data;console.log("剪切板內容",res.data);if(inputStr.includes("詳細地址")&&!inputStr.includes("收件人")&&!inputStr.includes("手機號碼")&&!inputStr.includes("所在地區")){//是拼多多復制的地址let obj=that.parsePinduoduoInfo(inputStr);if(obj !== undefined&&obj["手機號碼"] !== undefined&&obj["所在地區"] !== undefined&&obj["詳細地址"] !== undefined&&obj["收件人"] !== undefined){//當前新增地址賦值uni.showModal({title: "提示",content: "檢測到當前有地址,是否添加地址?",success: (res) => {if (res.confirm) {//當前數據賦值that.receiveName=obj["收件人"];that.receiveTell=obj["手機號碼"];that.receiveAddress=obj["詳細地址"];that.addressData=obj["所在地區"];}}})}}if(inputStr.includes("詳細地址")&&inputStr.includes("所在地區")){let obj;if(inputStr.includes("收貨人")&&inputStr.includes("手機號")){//是淘寶復制的地址obj=that.parseDeliveryInfo(inputStr);}else{//是京東復制的地址obj=that.parseInfoString(inputStr);}if(obj !== undefined&&obj["所在地區"] !== undefined&&obj["詳細地址"] !== undefined){//當前新增地址賦值uni.showModal({title: "提示",content: "檢測到當前有地址,是否添加地址?",success: (res) => {if (res.confirm) {//當前數據賦值,對淘寶,京東判斷賦值if(obj["收件人"] !== undefined){//淘寶that.receiveName=obj["收件人"];that.receiveTell=obj["手機號碼"];}else{//京東that.receiveName=obj["收貨人"];that.receiveTell=obj["手機號"];}that.receiveAddress=obj["詳細地址"];that.addressData=obj["所在地區"];}}})}}},fail(e){console.log(e);}});},

輔助函數

parsePinduoduoInfo(inputStr) {// 定義正則表達式模式const pattern = /(\S+)\s+(\d+)\s+([^\s]+?)\s+詳細地址:(.+)/;// 執行正則匹配const matchResult = inputStr.match(pattern);// console.log("解析的結果",matchResult);if (matchResult) {// 解構匹配結果const [, name, phone, region, address] = matchResult;// 返回結構化數據return {"收件人": name,"手機號碼": phone,"所在地區": region,"詳細地址": address};} else {// 可選:拋出錯誤或靜默返回undefined// throw new Error("解析失敗,請檢查輸入格式");return undefined; // 或根據需求修改為其他默認值}},parseDeliveryInfo(str) {return str.split('\n').reduce((acc, line) => {// 分割每行的鍵值對(兼容中文冒號)const [key, value] = line.split(':').map(item => item.trim());if (key && value !== undefined) {acc[key] = value;}return acc;}, {});},parseInfoString(str) {return str.split('\n').reduce((acc, line) => {const [key, value] = line.split(':').map(item => item.trim());if (key && value) {acc[key] = value;}return acc;}, {});},

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/96280.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/96280.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/96280.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ESP32 驅動 PWM 舵機為什么必須共地?——從原理到實踐全解析

在使用 ESP32 控制 PWM 舵機 的過程中,新手經常遇到一個常見問題:舵機不動、亂動、甚至燒壞芯片。 其中最典型的原因,就是沒有正確共地。 很多初學者會疑惑:“外接電池只是給舵機供電,為什么還要把電池的地線接到 ESP32 的 GND 上呢?” 本文將從 信號邏輯、閉合回路、…

細菌基因組genome二代測序數據分析

kraken2去除污染conda create -n kraken2 conda activate kraken2 conda install kraken2 -c bioconda mkdir kraken2_outputkraken2 --db ../../kraken2_db/k2_pluspf_20250402/ --threads 8 --paired 250811_HS67EV0804_R1.fastq.gz 250811_HS67EV0804_R2.fastq.gz --use-nam…

工業網絡架構的未來:智慧化工廠中的低延遲與高可靠性設計

1. 引言工業網絡正經歷從傳統有線到無線、從低速到高速的全面升級。某鋁箔智慧工廠專注于新能源鋁箔的生產,依賴低延遲、高可靠的網絡支持實現生產控制與智能管理。本文將探討某鋁箔智慧工廠網絡架構設計的關鍵點及其實施策略。2. 某鋁箔智慧工廠的網絡挑戰多終端接…

Android14 init.rc中on boot階段操作4

Android14 init.rc中on early-init, init, late-init, early-fs, post-fs階段詳解1 Android14 init.rc的on late-fs, post-fs-data階段主要操作詳解2 Android14 init.rc中啟動Zygote詳解3 Android14 init.rc中on boot階段操作4 1 on boot和低內存設備的啟動優化 僅在ro.con…

CodeSandbox Desktop:零配置項目啟動工具,實現項目環境隔離與Github無縫同步

你有沒有過為了跑一個簡單的 Demo,花半小時配置環境還失敗的經歷?比如想測試一個 Vue3 組件,先裝 Node.js,結果版本太高和項目依賴不兼容;換低版本又提示 “找不到 python 環境”;好不容易裝完依賴&#xf…

人工智能-python-深度學習-經典神經網絡AlexNet

AlexNet(詳解)——從原理到 PyTorch 實現(含訓練示例) 文章目錄AlexNet(詳解)——從原理到 PyTorch 實現(含訓練示例)1. 發展歷史與比賽成績2. AlexNet 的核心思想(一句話…

《sklearn機器學習——指標和評分1》

3個不同的API可供評估模型預測質量: 評估器評分方法:評估器有一個score方法,它給計劃解決的問題提供一個初始評估標準。這部分內容不在這里討論,但會出現在每一個評估器的文件中。 評分參數:使用交叉驗證(…

人工智能中的線性代數總結--簡單篇

numpy庫中的dot函數來計算矩陣和向量的點積def matrix_vector_dot_product(a, b):import numpy as npif (len(a[0]) ! len(b)):return -1# 使用tolist()將結果轉換為列表return np.dot(a, b).tolist()原始方法def matrix_vector_dot_product(matrix, vector):if len(matrix[0])…

又是全網首創/純Qt實現28181設備模擬器/rtp視頻點播/桌面轉28181/任意文件轉28181/跨平臺

一、前言說明 這個工具前前后后也算是廢了不少功夫,最開始是因為28181服務端的組件已經完美實現,對照國標文檔看了很多遍,逐個實現需要的交互協議,整體上比onvif協議要難不少,主要是涉及到的東西比較多,有…

安卓逆向(一)Ubuntu環境配置

一、Ubuntu 1、虛擬機 首先準備一個Ubuntu的虛擬機,就隨便新建一個就行,我這里使用的是Ubuntu21.04,但是內存跟硬盤大小最好設置的稍微大一點。 2、基礎環境 (1)解決apt-get update報錯問題 apt-get是Linux系統中一個管…

Go 1.25在性能方面做了哪些提升?

Go 1.25 在性能方面帶來了多項重要提升,主要有以下幾個方面: 實驗性垃圾回收器 GreenTea GC:針對小對象密集型應用優化,顯著提升小對象標記和掃描性能,垃圾回收開銷減少0-40%,暫停時間縮短,吞吐…

Python與XML文件處理詳解(2續):xml.dom.minidom模塊高階使用方法

目錄 第一部分:高級節點操作與遍歷方法 1.1 更精確的節點導航 1.2 使用 cloneNode() 復制節點 1.3 節點插入、替換與高級管理 第二部分:文檔創建與高級輸出控制 2.1 使用 Document 工廠方法完整創建文檔 2.2 高級輸出與序列化控制 第三部分:實用工具函數與模式處理 …

如何利用 ChatGPT 輔助寫作

引言 介紹人工智能輔助寫作的興起,ChatGPT 在寫作領域的應用潛力,以及本文的核心目標。 ChatGPT 在寫作中的核心功能 概述 ChatGPT 的主要功能,包括文本生成、潤色、結構優化、靈感激發等。 利用 ChatGPT 輔助寫作的具體方法 生成創意與靈感 …

【有鹿機器人自述】我在社區的365天:掃地、賣萌、治愈人心

大家好,我是有鹿巡掃機器人,編號RD-07。今天我想和大家分享這一年來的工作見聞——沒錯,我們機器人也會"觀察"和"感受",尤其是在連合直租將我送到這個社區后,發生的點點滴滴讓我擁有了前所未有的&…

第五十五天(SQL注入增刪改查HTTP頭UAXFFRefererCookie無回顯報錯復盤)

#數據庫知識: 1、數據庫名,表名,列名,數據 2、自帶數據庫,數據庫用戶及權限 3、數據庫敏感函數,默認端口及應用 4、數據庫查詢方法(增加刪除修改更新) #SQL注入產生原理&#xf…

怎么用 tauri 創建一個桌面應用程序(Electron)

以前用 Electron 做過一個桌面應用程序,打包體積確實很大,啟動也很慢。這次先 tauri。 并且用 bun 代替 npm 速度更快,避免總是出現依賴問題。 前端用 react 為了學習下,用 js 先現在主流的 typescript。 安裝 bun npm instal…

【通過Docker快速部署Tomcat9.0】

文章目錄前言一、部署docker二、部署Tomcat2.1 創建存儲卷2.2 運行tomcat容器2.3 查看tomcat容器2.4 查看端口是否監聽2.5 防火墻開放端口三、訪問Tomcat前言 Tomcat介紹 Tomcat 是由 Apache 軟件基金會(Apache Software Foundation)開發的一個開源 Jav…

LabVIEW UI 分辨率適配

針對 LabVIEW UI 在不同分辨率下的適配,現有方案分三類:一是現有 VI 可通過 “VI 屬性 - 窗口大小” 勾選比例保持或控件縮放選項快速調整,也可取消勾選或換等寬字體防控件移位;二是項目初期以最低目標分辨率為基準,用…

國產化FPGA開發板:2050-基于JFMK50T4(XC7A50T)的核心板

(IEB-PS-3051-郵票孔) 一、核心板概述 板卡基于JFMK50T4國產化FPGA芯片,設計的一款工業級核心板,板卡集成主芯片、電源、DDR、配置芯片,大大減輕客戶的擴展開發困難。豐富的IO和4個GTP,讓用戶輕…

Webpack 核心原理剖析

時至今日,Webpack 已迭代到 5.x 版本,其功能模塊的擴充和復雜度的提升使得源碼學習成本陡增。官方文檔的晦澀表述更是讓許多開發者望而卻步。然而,理解 Webpack 的核心原理對優化構建流程、定制化打包方案至關重要。本文將通過簡化流程和代碼…