当前位置: 首页 > news >正文

免费手机网站app湛江市工程建设领域网站

免费手机网站app,湛江市工程建设领域网站,企业建设网站应该一般多少钱,新闻发布会主持稿原理分析 说白了就是解析特定格式的文字#xff0c;并将处理好的内容回填到需要的表单中。 为了程序的健壮性#xff0c;我们解析时需要考虑多种情况。 1、文字行数 单行和多行的解析可以分开 单行的情况如下面这种#xff0c; 姓名: 七七 电话#xff1a;788 邮箱并将处理好的内容回填到需要的表单中。 为了程序的健壮性我们解析时需要考虑多种情况。 1、文字行数 单行和多行的解析可以分开 单行的情况如下面这种 姓名: 七七 电话788 邮箱qiqiqiqi.com 地址啊啊啊多行的情况可能是 姓名: 七七 电话788 邮箱qiqiqiqi.com 地址啊啊啊多行用:const lines text?.split(\n);分开解析即可 2、中英文冒号兼容 在填写地址时用户可能打中文冒号或者英文冒号我们需要兼容确保识别分割的时候程序不会出问题。 split(/[:]/)即可 当然这里也可以写正则去分割空格的情况。 3、移除文本信息前后的无用空格 用trim()没什么好说的 4、关键信息匹配 我们需要自定义一个关键词汇库去匹配剪贴板文本信息我们可以考虑所有关键信息放进一个词汇库也可以根据表单字段数量分开创建多个词汇库。 列如 1、词汇库放在一起 const keywords [姓名,名字,电话,电话号码,号码,手机,手机号,手机号码,邮箱,邮箱地址,邮件,地址,详细地址使用这种放一起的关键字的匹配优势就是词汇库放一起比较灵活但是后期处理文本信息的时候略微繁琐需要拿到一段信息后把这段信息移除否则会干扰下一段信息的获取。 2、多个词汇库 const nameKeywords [姓名,名字,联系人] const phoneKeywords [电话,电话号码,号码,手机,手机号,手机号码] const emailKeywords [ 邮箱,邮箱地址,邮件] const addressKeywords [地址,详细地址]缺点是每个关键字词库只能匹配特定的字段有多少个字段就需要多少个词汇库。 优点可以精准匹配大大简化操作。 实践 我们这里用多个词汇库举例单个词汇库代码太多了懒得写下次想起来再更新。 1、获取粘贴板内容 无论你用的那个技术栈总有获取粘贴板内容的方法自己用ai搜下就行用框架的可以搜对应框架的api原生的就搜js获取。 2、解析 定义多个关键字库 const nameKeywords [姓名, 名字, 收件人]; // 匹配姓名关键字const phoneKeywords [电话, 手机号码, 手机号, 手机, 联系电话]; // 匹配号码关键字const provinceKeywords [所在地区, 省市区]; // 匹配省市区关键字const addressKeywords [详细地址, 地址, 完整地址]; // 匹配详细地址关键字正则先匹配一遍关键字和值 let name ;let phone ;let provinceCode: string[] [];let address ;// 使用正则表达式匹配关键字和值const regex new RegExp((${nameKeywords.join(|)})[:](.*?)(${phoneKeywords.join(|,)})[:](.*?)(${provinceKeywords.join(|)})[:](.*?)(${addressKeywords.join(|,)})[:](.*),i,);const match text.match(regex);区分单行和多行处理方式 if (match) {// 动态解析关键字和值处理一行格式的情况const parsedFields {[match[1]]: match[2].trim(),[match[3]]: match[4].trim(),[match[5]]: match[6].trim(),[match[7]]: match[8].trim(),};name nameKeywords.some(keyword keyword in parsedFields)? parsedFields[nameKeywords.find(keyword keyword in parsedFields)!]: ;phone phoneKeywords.some(keyword keyword in parsedFields)? parsedFields[phoneKeywords.find(keyword keyword in parsedFields)!]: ;const provinceText provinceKeywords.some(keyword keyword in parsedFields)? parsedFields[provinceKeywords.find(keyword keyword in parsedFields)!]: ;address addressKeywords.some(keyword keyword in parsedFields)? parsedFields[addressKeywords.find(keyword keyword in parsedFields)!]: ;provinceCode pareProvinceText(provinceText);}// 处理多行格式的情况else {let provinceText ;const lines text?.split(\n);lines.forEach(line {const trimmedLine line.trim();if (nameKeywords.some(keyword trimmedLine.includes(keyword))) {name trimmedLine.split(/[:]/).pop()?.trim() || ; // 中英文冒号处理} else if (phoneKeywords.some(keyword trimmedLine.includes(keyword))) {phone trimmedLine.split(/[:]/).pop()?.trim() || ;} else if (provinceKeywords.some(keyword trimmedLine.includes(keyword))) {provinceText trimmedLine.split(/[:]/).pop()?.trim() || ;} else if (addressKeywords.some(keyword trimmedLine.includes(keyword))) {address trimmedLine.split(/[:]/).pop()?.trim() || ;}});provinceCode pareProvinceText(provinceText);}上面这里pareProvinceText这个函数是我自己的业务函数处理省市区的你们不用管 将结果回填 let name ;let phone ;let provinceCode: string[] [];let address ;上面的变量是我们保存的结果回填到需要的地方就行了。 完整示例用的react-native) import Clipboard from react-native-clipboard/clipboard;// 解析省市区粘贴板const pareProvinceText (provinceText: string) {const provinceCode: any[] [];let cityList: any[] []; // 某省下所有市let districtList: any[] []; // 某省某区下所有区let provinceName ;areaList?.some((item: any) {if (provinceText.includes(item?.label)) {provinceName item?.label;provinceCode.push(item?.value); // 获取匹配到的省codecityList item?.children;}});cityList?.some((item: any) {if (provinceText?.includes(item?.label)) {provinceCode.push(item?.value); // 获取匹配到的市codedistrictList item?.children;}});districtList?.some((item: any) {if (provinceText?.includes(item?.label)) {provinceCode.push(item?.value); // 获取匹配到的区codedistrictList item?.children;}});return provinceCode;};// 识别剪切板const onCheckClipboard () {Clipboard.getString().then(text {console.log(text, text);if (!text) {return Toast.text(剪切板无内容);}const nameKeywords [姓名, 名字, 收件人]; // 匹配姓名关键字const phoneKeywords [电话, 手机号码, 手机号, 手机, 联系电话]; // 匹配号码关键字const provinceKeywords [所在地区, 省市区]; // 匹配省市区关键字const addressKeywords [详细地址, 地址, 完整地址]; // 匹配详细地址关键字let name ;let phone ;let provinceCode: string[] [];let address ;// 使用正则表达式匹配关键字和值const regex new RegExp((${nameKeywords.join(|)})[:](.*?)(${phoneKeywords.join(|,)})[:](.*?)(${provinceKeywords.join(|)})[:](.*?)(${addressKeywords.join(|,)})[:](.*),i,);const match text.match(regex);if (match) {// 动态解析关键字和值处理一行格式的情况const parsedFields {[match[1]]: match[2].trim(),[match[3]]: match[4].trim(),[match[5]]: match[6].trim(),[match[7]]: match[8].trim(),};name nameKeywords.some(keyword keyword in parsedFields)? parsedFields[nameKeywords.find(keyword keyword in parsedFields)!]: ;phone phoneKeywords.some(keyword keyword in parsedFields)? parsedFields[phoneKeywords.find(keyword keyword in parsedFields)!]: ;const provinceText provinceKeywords.some(keyword keyword in parsedFields)? parsedFields[provinceKeywords.find(keyword keyword in parsedFields)!]: ;address addressKeywords.some(keyword keyword in parsedFields)? parsedFields[addressKeywords.find(keyword keyword in parsedFields)!]: ;provinceCode pareProvinceText(provinceText);}// 处理多行格式的情况else {let provinceText ;const lines text?.split(\n);lines.forEach(line {const trimmedLine line.trim();if (nameKeywords.some(keyword trimmedLine.includes(keyword))) {name trimmedLine.split(/[:]/).pop()?.trim() || ; // 中英文冒号处理} else if (phoneKeywords.some(keyword trimmedLine.includes(keyword))) {phone trimmedLine.split(/[:]/).pop()?.trim() || ;} else if (provinceKeywords.some(keyword trimmedLine.includes(keyword))) {provinceText trimmedLine.split(/[:]/).pop()?.trim() || ;} else if (addressKeywords.some(keyword trimmedLine.includes(keyword))) {address trimmedLine.split(/[:]/).pop()?.trim() || ;}});provinceCode pareProvinceText(provinceText);}// 更新表单数据formRef.current?.setData({receiver: name,phone,addressCode: provinceCode,address,});}).catch(error {console.log(error);});};参考1、2就行其他技术栈原理类似。 不懂得留言问。加呐
http://www.hkea.cn/news/14504976/

相关文章:

  • 湖南城乡和建设厅网站天元建设集团有限公司商业承兑汇票
  • 怎么才能自己做网站e福州app官方网站
  • 汉服网站怎么做天津网络关键词排名
  • 网站建设初学软件建筑施工单位网站
  • 省建设厅执业资格注册中心网站免费建设网站
  • 优化百度网站企业管理软件有哪些
  • 网站 html5广州手机网站建设
  • 临汾花果街网站建设网站设置不拦截
  • 自己怎样做网站显示危险万能浏览器手机版
  • 天津网络网站制作网络开发软件
  • 温州网站建设小公司北京列表网
  • 建站网站源码怎么在天猫注册开店铺
  • 青海省交通建设管理局网站网页升级中紧急自动转跳中
  • 网站建设自学建站视频教程wordpress头像代码
  • 宜兴市城乡建设局网站静态网站什么样
  • 金华app网站开发如何推广微信小程序
  • 湖北外贸网站建设费用营销策略ppt
  • 开通网站需要什么手续如何用dw制作网页文字链接
  • 微官网和微网站宁波seo怎么推广
  • 科技公司网站响应式素材网站有哪些
  • 微小店网站建设价格企业logo设计报价
  • 四平网络推广台州关键词优化价格
  • 做网站 斗地主网站开发品牌
  • eclipse sdk做网站做网站销售有前景
  • 建网站发信息做推广更新wordpress需要ftp
  • 公司网站建设比较好的公司常用的seo工具推荐
  • 青岛移动公司网站做外贸服装的网站
  • 网站招聘方案怎么做河南省十大互联网企业
  • 互联网企业网站设计聊城网站优化技术
  • 做网站建设公司企业设计师投稿网站