原生Js汉语拼音首字母匹配城市名

2018-04-10 09:49:30 luck_lin 阅读数 1520更多

分类专栏: javascript

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/qwe502763576/article/details/79876451

placeData.js:
  1. var cityData = ['北京|beijing|bj','上海|shanghai|sh', '重庆|chongqing|cq', '深圳|shenzhen|sz', '广州|guangzhou|gz', '杭州|hangzhou|hz',

  2. '南京|nanjing|nj', '苏州|shuzhou|sz', '天津|tianjin|tj', '成都|chengdu|cd', '南昌|nanchang|nc', '三亚|sanya|sy','青岛|qingdao|qd',

  3. '厦门|xiamen|xm', '西安|xian|xa','长沙|changsha|cs','合肥|hefei|hf','西藏|xizang|xz', '内蒙古|neimenggu|nmg', '安庆|anqing|aq', '阿泰勒|ataile|atl', '安康|ankang|ak',

  4. '阿克苏|akesu|aks', '包头|baotou|bt', '北海|beihai|bh', '百色|baise|bs','保山|baoshan|bs', '长治|changzhi|cz', '长春|changchun|cc', '常州|changzhou|cz', '昌都|changdu|cd',

  5. '朝阳|chaoyang|cy', '常德|changde|cd', '长白山|changbaishan|cbs', '赤峰|chifeng|cf', '大同|datong|dt', '大连|dalian|dl', '达县|daxian|dx', '东营|dongying|dy', '大庆|daqing|dq', '丹东|dandong|dd',

  6. '大理|dali|dl', '敦煌|dunhuang|dh', '鄂尔多斯|eerduosi|eeds', '恩施|enshi|es', '福州|fuzhou|fz', '阜阳|fuyang|fy', '贵阳|guiyang|gy',

  7. '桂林|guilin|gl', '广元|guangyuan|gy', '格尔木|geermu|gem', '呼和浩特|huhehaote|hhht', '哈密|hami|hm',

  8. '黑河|heihe|hh', '海拉尔|hailaer|hle', '哈尔滨|haerbin|heb', '海口|haikou|hk', '黄山|huangshan|hs', '邯郸|handan|hd',

  9. '汉中|hanzhong|hz', '和田|hetian|ht', '晋江|jinjiang|jj', '锦州|jinzhou|jz', '景德镇|jingdezhen|jdz',

  10. '嘉峪关|jiayuguan|jyg', '井冈山|jinggangshan|jgs', '济宁|jining|jn', '九江|jiujiang|jj', '佳木斯|jiamusi|jms', '济南|jinan|jn',

  11. '喀什|kashi|ks', '昆明|kunming|km', '康定|kangding|kd', '克拉玛依|kelamayi|klmy', '库尔勒|kuerle|kel', '库车|kuche|kc', '兰州|lanzhou|lz',

  12. '洛阳|luoyang|ly', '丽江|lijiang|lj', '林芝|linzhi|lz', '柳州|liuzhou|lz', '泸州|luzhou|lz', '连云港|lianyungang|lyg', '黎平|liping|lp',

  13. '连成|liancheng|lc', '拉萨|lasa|ls', '临沧|lincang|lc', '临沂|linyi|ly', '芒市|mangshi|ms', '牡丹江|mudanjiang|mdj', '满洲里|manzhouli|mzl', '绵阳|mianyang|my',

  14. '梅县|meixian|mx', '漠河|mohe|mh', '南充|nanchong|nc', '南宁|nanning|nn', '南阳|nanyang|ny', '南通|nantong|nt', '那拉提|nalati|nlt',

  15. '宁波|ningbo|nb', '攀枝花|panzhihua|pzh', '衢州|quzhou|qz', '秦皇岛|qinhuangdao|qhd', '庆阳|qingyang|qy', '齐齐哈尔|qiqihaer|qqhe',

  16. '石家庄|shijiazhuang|sjz', '沈阳|shenyang|sy', '思茅|simao|sm', '铜仁|tongren|tr', '塔城|tacheng|tc', '腾冲|tengchong|tc', '台州|taizhou|tz',

  17. '通辽|tongliao|tl', '太原|taiyuan|ty', '威海|weihai|wh', '梧州|wuzhou|wz', '文山|wenshan|ws', '无锡|wuxi|wx', '潍坊|weifang|wf', '武夷山|wuyishan|wys', '乌兰浩特|wulanhaote|wlht',

  18. '温州|wenzhou|wz', '乌鲁木齐|wulumuqi|wlmq', '万州|wanzhou|wz', '乌海|wuhai|wh', '兴义|xingyi|xy', '西昌|xichang|xc', '襄樊|xiangfan|xf',

  19. '西宁|xining|xn', '锡林浩特|xilinhaote|xlht', '西双版纳|xishuangbanna|xsbn', '徐州|xuzhou|xz', '义乌|yiwu|yw', '永州|yongzhou|yz', '榆林|yulin|yl', '延安|yanan|ya', '运城|yuncheng|yc',

  20. '烟台|yantai|yt', '银川|yinchuan|yc', '宜昌|yichang|yc', '宜宾|yibin|yb', '盐城|yancheng|yc', '延吉|yanji|yj', '玉树|yushu|ys', '伊宁|yining|yn', '珠海|zhuhai|zh', '昭通|zhaotong|zt',

  21. '张家界|zhangjiajie|zjj', '舟山|zhoushan|zs', '郑州|zhengzhou|zz', '中卫|zhongwei|zw', '芷江|zhijiang|zj', '湛江|zhanjiang|zj'];

  22. var iCity = {

  23. cityClass : function(){ //城市分类

  24. if(!this.citys){

  25. //{HOT:{hot:[],ABCDEFG:{a:[1,2,3],b:[1,2,3]},HJKLMN:{},PQST:{},VWXYZ:{}}

  26. this.citys = {"hotCity":[],"ABCDEFG":{},"HJKLMN":{},"PQST":{},"WXYZ":{}};

  27. var make,fn,name,

  28. reg1 = /^[a-g]$/i, reg2 = /^[h-n]$/i, reg3 = /^[o-u]$/i,reg4 = /^[v-z]$/i;

  29. for(var i in cityData){

  30. make = cityData[i].split("|"); //分割成数组

  31. fn = make[2].substring(0,1).toUpperCase(); //获取英文第一个字母转换成大写

  32. name = make[0];

  33. if(reg1.test(fn)){

  34. if(!this.citys.ABCDEFG[fn]) this.citys.ABCDEFG[fn]=[];

  35. this.citys.ABCDEFG[fn].push(name)

  36. }else if(reg2.test(fn)){

  37. if(!this.citys.HJKLMN[fn]) this.citys.HJKLMN[fn]=[];

  38. this.citys.HJKLMN[fn].push(name)

  39. }else if(reg3.test(fn)){

  40. if(!this.citys.PQST[fn]) this.citys.PQST[fn]=[];

  41. this.citys.PQST[fn].push(name)

  42. }else if(reg4.test(fn)){

  43. if(!this.citys.WXYZ[fn]) this.citys.WXYZ[fn]=[];

  44. this.citys.WXYZ[fn].push(name)

  45. }

  46. if(i<20) this.citys.hotCity.push(name);

  47. }

  48. }

  49. }

  50. }

  51. iCity.cityClass();

  52. export default iCity.citys;

react组件:
  1. import React, {Component} from 'react';

  2. import data from './placeData';

  3. import {

  4. Link //模板切换的组件

  5. } from 'react-router-dom';

  6. class PlaceMain extends Component{

  7. render(){

  8. let pathname = this.props.currentPath;//获取当前请求该组件luyou,以便于点击后携带参数往哪个路由跳转

  9. let ABCDEFG = data.ABCDEFG;

  10. let arrABCDEFG = [];

  11. [].slice.call('ABCDEFG').forEach(v=>{

  12. arrABCDEFG = arrABCDEFG.concat(ABCDEFG[v]);

  13. })

  14. arrABCDEFG.title = "ABCDEFG";

  15. let HJKLMN = data.HJKLMN;

  16. let arrHJKLMN = [];

  17. [].slice.call('HJKLMN').forEach(v=>{

  18. arrHJKLMN = arrHJKLMN.concat(HJKLMN[v]);

  19. })

  20. arrHJKLMN.title = "HJKLMN";

  21. let PQST = data.PQST;

  22. let arrPQST = [];

  23. [].slice.call('PQST').forEach(v=>{

  24. arrPQST = arrPQST.concat(PQST[v]);

  25. })

  26. arrPQST.title = "PQST";

  27. let WXYZ = data.WXYZ;

  28. let arrWXYZ = [];

  29. [].slice.call('WXYZ').forEach(v=>{

  30. arrWXYZ = arrWXYZ.concat(WXYZ[v]);

  31. })

  32. arrWXYZ.title = "WXYZ";

  33. let hotCity = data.hotCity;

  34. hotCity.title = "热门城市";

  35. let AllCity =[hotCity, arrABCDEFG, arrHJKLMN, arrPQST, arrWXYZ].map((v, i)=>{

  36. return(

  37. <dl key={i}>

  38. <dt>{v.title}</dt>

  39. <dd>

  40. {v.map((val, idx)=>{

  41. return <Link key={idx} to={ {pathname, state: {place: val}} }>{val}</Link>

  42. })}

  43. </dd>

  44. </dl>

  45. )

  46. })

  47. return(

  48. <main>

  49. {AllCity}

  50. </main>

  51. )

  52. }

  53. }

  54. export default PlaceMain;

js-原生Js汉语拼音首字母匹配城市名相关推荐

  1. JS实现获取汉字首字母拼音、全拼音及混拼音的方法

    本文实例讲述了JS实现获取汉字首字母拼音.全拼音及混拼音的方法.分享给大家供大家参考,具体如下: 这里需要用到一个js获取汉字拼音的插件,可点击此处本站下载. 运行效果如下: 完整示例代码: ? 1 ...

  2. js中文转拼音首字母(js汉字转拼音首字母)

    一.js中文转拼音首字母实现功能 汉字转拼音首字母,js中文转拼音首字母 二.js中文转拼音首字母业务场景 在写即时通讯时必然要做通讯录(联系人列表),联系人列表通常是按照拼音字母表的顺序进行展示的, ...

  3. select2通过全拼及首字母匹配汉字

    (注:原文出自qq_33142257的博客http://blog.csdn.net/qq_33142257/article/details/52575823 以及qq_28685573的博客http: ...

  4. mysql 拼音首字母_MySQL 获取某个字段的汉语拼音首字母 - 文章

    在做一个商城的时候,需要用户能有切换城市的功能,城市列表按照汉语拼音首字母排序,城市的数据是从国家统计局扒下来的,只有城市的编码和城市的名称,通过下面的 MySQL 函数,获取某个汉语的首字母. CR ...

  5. 全国省市区数据库-拼音-首字母-经纬度-城市编码-邮编-简称-组合称

    全国省市区数据库-拼音-首字母-经纬度-城市编码-邮编-简称-组合称 全国省市区数据库-拼音-首字母-经纬度-城市编码-邮编-简称-组合称 MySql转储文件,Excel数据文档 全国省市区数据库-拼 ...

  6. java汉字转拼音和获取汉语拼音首字母

    需要加入的jar包 <!-- pinyin4j --><dependency><groupId>com.belerweb</groupId><ar ...

  7. 工具类-汉字转为汉语拼音首字母

    汉字转换为汉语拼音首字母,英文字符不变,特殊字符丢失 支持多音字,生成方式如(长沙市长:cssc,zssz,zssc,cssz) 首先需Pinyin4j的jar包,代码如下,可直接使用 public ...

  8. Mysql按照汉语拼音首字母A-Z排序

    Mysql按照汉语拼音首字母A-Z排序 select * from configuration ORDER BY CONVERT(configuration.name USING GBK) asc; ...

  9. 项目小方便--取汉语拼音首字母和字符串比较函数

    壹:取汉语拼音首字母的函数 在做工程项目建模的时候,我们时常用字段的汉语拼音首字母来定义列名;如果手工取下来将是一件非常烦人的工作;此函数就用来取汉字的汉语拼音首字母,解决我们头疼的问题 代码如下: ...

  10. 汉语拼音首字母处理工具类

    文章目录 1.正则表达式来判断字符串中是否包含字母 2.获得汉字首字母(通常用作通讯录检索) 3.获得汉语拼音首字母简称 4.将字符串中的中文转化为拼音,英文字符不变 5.汉字转换位汉语拼音首字母,英 ...

最新文章

  1. Eclipse用法和技巧十:显示代码outline
  2. 自动转换会出现的问题
  3. 1.9 Java转换流:InputStreamReader和OutputStreamWriter
  4. 如何使用加密的Payload来识别并利用SQL注入漏洞
  5. 前端学习(2458):评论模块
  6. 吴恩达机器学习:逻辑回归
  7. python获取app信息的库_基于python3抓取pinpoint应用信息入库
  8. php_js,举例说明JS调用PHP和PHP调用JS的方法_WEB前端开发
  9. rocketmq源码调试
  10. nodejs 中的 commonjs 模块化使用
  11. Mac OS系统怎么修改mac地址
  12. Go语法·类型选择(type switch)
  13. win10 u盘 修复计算机,怎么用u盘修复windows10专业版系统
  14. Leetcode力扣 MySQL数据库 1132 报告的记录II
  15. vm虚拟机安装lede旁路由_利用VMM虚拟机 安装LEDE旁路由 实现软路由超强功能
  16. 【多任务学习】Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts KDD18
  17. sql注入——布尔注入
  18. python线性加权回归_第二十一章 regression算法——线性回归局部加权回归算法(上)...
  19. 原始集体主义、威权集体主义和敏捷集体主义
  20. 【.NET资源收集】C#与时俱进的知识点...

热门文章

  1. Python Gym ImportError cannot import name ‘rendering‘ from ‘gym.envs.classic_control‘
  2. swiper+vue3,使用自动切换autoplay+自定义分页器navigation的报错问题解决
  3. 5G承载网,从入门到……放弃?
  4. 奇迹服务器gs无响应,奇迹gs远程连接服务器
  5. java 用户留存率_Java后台实现日留存率,求解!
  6. Unity获取手机app列表《三》安卓端
  7. python发微信图片加文字_python向企业微信发送文字和图片消息的示例
  8. C# 多线程如何访问同一个数据
  9. 斯年,愿做岁月的知音
  10. 软件项目量化管理(CMMI高成熟度)实践经验谈——之项目管理过程监督与控制篇