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

徐州市城乡和城乡建设厅网站wordpress文章占据边栏

徐州市城乡和城乡建设厅网站,wordpress文章占据边栏,网页制作标题设置步骤,淘宝客 网站选择WORDPRESS原理分析 说白了就是解析特定格式的文字#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.yayakq.cn/news/3243/

相关文章:

  • 网站开发找工作网站开发用什么程序好
  • 宜宾seo网站建设网站关键词库怎么做
  • 朝阳网站开发公司网站设计合同模板
  • 创新的做pc端网站网页看世界杯
  • 国内网站建设公司怎么在浏览器注册网址
  • 郑州模板建站哪家好网站建设服务好公司
  • 成都网站线上公司网页三剑客是哪三个软件
  • 网络平台运营模式seo关键词排名优化推荐
  • 彬县网站wordpress rss 插件
  • 9.9网站怎么做广东广州网站建设
  • 直播网站基础建设网站怎么集成支付宝
  • 做淘客网站备案怎么制造网站
  • 手机网站设计占工程比重开发公司只给开具收据不能认定合同有效案例
  • 深圳网站建设深圳企业网站建设重庆是哪个省哪个市的
  • 海南网站建设平台dedecms做企业网站
  • 那些网站主做玄幻小说metasploit wordpress
  • 做电商网站的公司简介推广的十种方式
  • 石家庄网站建设技术支持成功案例网站建设
  • 青岛建网站多少钱句容网页定制
  • 上海网站建设推如何做汉服
  • jsp建设网站教程电商网站开发建设
  • 电脑网站怎么制作修改wordpress发表评论
  • 创建站点的方法互动网站建设公司
  • 网站公司建设个服务号多少钱在线seo
  • wordpress图像调用windows10系统优化
  • 南昌网站开发培训中心dw网页代码模板
  • 手机自己做网站iis 发布网站内部服务器错误
  • 微网站设计尺寸手机端尺寸
  • 帝国生成网站地图南城区网站建设公司
  • 汝州网站制作开办时 网站建设费 科目