js拼音快查combox,查询的拼音怎么打

本文目录一览:

JS实现输入拼音搜索中文列表

最近工作中接到了一个需求:一个项目列表,项目名称可能有中文可能有英文,如果是中文的话,需要实现用户输入项目的拼音即可筛选到对应项目的功能。

完成了之后觉得可以在公众号里给大家分享一下,给有需要的人一个参考吧。

项目框架用的是react,所以先creat-react-app

比如create-react-app pinyin

渲染选择框的组件用的是antd的Select组件,所以需要先引入antd,具体引入的方法参照antd官方文档,已经写得很清楚了

以上准备工作做好后,目前的目录结构应该如下图所示:

├── README.md

├── package.json

├── package-lock.json

├── config-overrides.js

├── public

│    ├── favicon.ico

│    ├──index.html

      └── manifest.json

├── src

│   ├── App.css

│   ├── App.js

│   ├── App.test.js

│   ├── index.css

│   ├── index.js

│   ├──logo.svg

│   └── registerServiceWorker.js

现在在src文件夹下新建一个components文件夹,components文件夹中新建一个SelectPinYin文件夹,SelectPinYin文件夹下新建一个index.js和PinYin.js

PinYin.js文件中主要放置拼音和各个拼音对应的中文字符串,方便组件调用

export const SimplePinYin = {

py: [

        [ ‘a’,’阿啊呵腌吖锕啊呵嗄啊呵啊呵阿啊呵’ ],

        [ ‘ai’,’哀挨埃唉哎捱锿呆挨癌皑捱矮哎蔼霭嗳爱碍艾唉哎隘暧嗳瑷嗌嫒砹’ ],

        [ ‘an’,’安谙鞍氨庵桉鹌厂俺铵揞埯案按暗岸黯胺犴’ ],

        [ ‘ang’,’肮昂盎’ ],

        [ ‘ao’,’熬凹熬敖嚣嗷鏖鳌翱獒聱螯廒遨袄拗媪奥澳傲懊坳拗骜岙鏊’ ],

        [ ‘ba’,’八吧巴叭芭扒疤笆粑岜捌八拔跋茇菝魃把靶钯把爸罢霸坝耙灞鲅吧罢’ ],

        [ ‘bai’,’掰白百摆伯柏佰捭败拜呗稗’ ],

        [ ‘ban’,’般班搬斑颁扳瘢癍版板阪坂钣舨办半伴扮瓣拌绊’ ],

        [ ‘bang’,’帮邦浜梆膀榜绑棒膀傍磅谤镑蚌蒡’ ],

[ ‘bao’,’包胞炮剥褒苞孢煲龅薄雹保宝饱堡葆褓鸨报暴抱爆鲍曝刨瀑豹趵’ ],

        [ ‘bei’,’背悲杯碑卑陂埤萆鹎北被备背辈倍贝蓓惫悖狈焙邶钡孛碚褙鐾鞴臂呗’ ],

]

}

内容太多,只能复制这样一小部分,其余部分可以参考下面这条链接,然后改成上面那种格式就可以了。

接下来开始写组件

要做到拼音搜索匹配到中文,所以调用this.selectPinYin函数,下面开始写selectPinYin函数

当input为中文时:

return option.props.children.toLowerCase().indexOf( input.toLowerCase() ) = 0;

当input为字母时:

const value = option.props.children.toLowerCase().split( ” );

const newValue = value.map( item = this.chineseChangePY( item ) ).join( ” );

return newValue.indexOf( input.toLowerCase() ) = 0;

思路:

①    将列表中的每项内容,即option.props.children转成小写(万一不全是中文),然后进行分割,split(”)把字符串转成数组

②    遍历得到的数组,并把每一个元素传递给chineseChangePY函数

③    chineseChangePY函数的作用:如果元素不是中文,直接返回;如果是中文,遍历PinYin.js中的数组,与每个子数组的第二个元素即中文字符串对比,如果元素在这个中文字符串里,返回中文字符串所在数组的第一个元素,即所需要的拼音

④    将处理过的数组转成字符串

⑤    和input进行对比,存在返回true,不存在返回false

bug说明: 比如遇到生僻字的时候,PinYin.js中没有收录进这个中文,就无法匹配。比如遇到多音字的时候,“藏”:既可以cang也可以zang,cang排在zang前面,当遍历匹配的时候遇到cang就已经返回了,所以如果有用户输入zang就匹配不到藏字。

如果有更好的方法,欢迎讨论交流。

边输入拼音边查找匹配的项目怎样实现

用js响应输入框的变化,用ajax传回后台,后台jsp根据接收的字符,去数据库查找相关词句,再返回前台,ajax接收到jsp返回的代码后,显示在前台。

exjs, combox 如何设置默认值保存到数据库里

Composite root = new Composite(“root”);

root.Add(new Leaf(“Leaf A”));

root.Add(new Leaf(“Leaf B”));

Composite comp=new Composite(“Composite X”);

comp.Add(new Leaf(“Leaf XA”));

comp.Add(new Leaf(“Leaf XB”));

root.Add(comp);

js动态添加input标签 easyui combox

方法一:

1 var data, json;

2 json = ‘[{“id”:”年计划”,”text”:”年计划”,”selected”:true}]’;

3 data = $.parseJSON(json);

4 $(“#rwlb”).combobox(“loadData”, data);

方法二:

1 var data,json;

2 data = [];

3 data.push({ “text”: “测试”, “id”: 100 });

4 $(“#rwlb”).combobox(“loadData”, data);

javascript中文按照拼音首字母排序,如何实现?

中文拼音排序一直都是很有趣的一个问题。推荐使用这个函数 String.prototype.localeCompare(),链接 MDN。首先用 localeCompare 试下拼音排序

var array = [‘武汉’, ‘北京’, ‘上海’, ‘天津’];

array.sort(

function compareFunction(param1, param2) {

return param1.localeCompare(param2);

}

);

array // [“北京”, “上海”, “天津”, “武汉”]

然后根据 26 个英文字母分组排序,函数如下,

function pySegSort(arr) {

if(!String.prototype.localeCompare)

return null;

var letters = “*abcdefghjklmnopqrstwxyz”.split(”);

var zh = “阿八嚓哒妸发旮哈讥咔垃痳拏噢妑七呥扨它穵夕丫帀”.split(”);

var segs = [];

var curr;

letters.forEach(function(item,i){

curr = {letter: item, data:[]};

arr.forEach(function(item2){

if((!zh[i-1] || zh[i-1].localeCompare(item2) = 0) item2.localeCompare(zh[i]) == -1) {

curr.data.push(item2);

}

});

if(curr.data.length) {

segs.push(curr);

curr.data.sort(function(a,b){

return a.localeCompare(b);

});

}

});

return segs;

}

测试:

pySegSort([“我”,”不”,”懂”,”爱”,”啊”,”按”,”已”,”呀”,”选”,”县”])

结果:

[{“letter”:”a”,”data”:[“啊”,”爱”,”按”]},{“letter”:”b”,”data”:[“不”]},{“letter”:”d”,”data”:[“懂”]},{“letter”:”w”,”data”:[“我”]},{“letter”:”x”,”data”:[“县”,”选”]},{“letter”:”y”,”data”:[“呀”,”已”]}]

var arr = [“张三”,”李四”,”王五”,”阿三”]; 

document.write(arr+””);

arr.sort(function(a,b){

return a.localeCompare(b);

});

document.write(arr);

定义和用法:

用本地特定的顺序来比较两个字符串。

语法:

stringObject.localeCompare(target)

参数描述:

target    要以本地特定的顺序与 stringObject 进行比较的字符串。  

返回值:

说明比较结果的数字。如果 stringObject 小于 target,则 localeCompare() 返回小于 0 的数。如果 stringObject 大于 target,则该方法返回大于 0 的数。如果两个字符串相等,或根据本地排序规则没有区别,该方法返回 0。

说明:

把 和 运算符应用到字符串时,它们只用字符的 Unicode 编码比较字符串,而不考虑当地的排序规则。以这种方法生成的顺序不一定是正确的。例如,在西班牙语中,其中字符 “ch” 通常作为出现在字母 “c” 和 “d” 之间的字符来排序。

localeCompare() 方法提供的比较字符串的方法,考虑了默认的本地排序规则。ECMAscript 标准并没有规定如何进行本地特定的比较操作,它只规定该函数采用底层操作系统提供的排序规则。

参考资料

百度知道.百度知道[引用时间2018-1-5]

急!!!Combox按拼音查询

告诉你个农民办法哦!

不过绝对可行!

用数据库!

三列:

id 简写 城市名

1 bj 北京

2 bd 保定

3 bt 包头

4 bh 北海

在窗体load的时候加载到某个全局数据集里面来!

每当combox文本改变的时候就去这个数据集里面找对应的就行了!

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/195963.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-03 09:51
下一篇 2024-12-03 09:52

相关推荐

  • JS Proxy(array)用法介绍

    JS Proxy(array)可以说是ES6中非常重要的一个特性,它可以代理一个数组,监听数据变化并进行拦截、处理。在实际开发中,使用Proxy(array)可以方便地实现数据的监…

    编程 2025-04-29
  • 解析js base64并转成unit

    本文将从多个方面详细介绍js中如何解析base64编码并转成unit格式。 一、base64编码解析 在JavaScript中解析base64编码可以使用atob()函数,它会将b…

    编程 2025-04-29
  • Node.js使用Body-Parser处理HTTP POST请求时,特殊字符无法返回的解决方法

    本文将解决Node.js使用Body-Parser处理HTTP POST请求时,特殊字符无法返回的问题。同时,给出一些相关示例代码,以帮助读者更好的理解并处理这个问题。 一、问题解…

    编程 2025-04-29
  • t3.js:一个全能的JavaScript动态文本替换工具

    t3.js是一个非常流行的JavaScript动态文本替换工具,它是一个轻量级库,能够很容易地实现文本内容的递增、递减、替换、切换以及其他各种操作。在本文中,我们将从多个方面探讨t…

    编程 2025-04-28
  • JS图片沿着SVG路径移动实现方法

    本文将为大家详细介绍如何使用JS实现图片沿着SVG路径移动的效果,包括路径制作、路径效果、以及实现代码等内容。 一、路径制作 路径的制作,我们需要使用到SVG,SVG是可缩放矢量图…

    编程 2025-04-27
  • 如何使用JS调用Python脚本

    本文将详细介绍通过JS调用Python脚本的方法,包括使用Node.js、Python shell、child_process等三种方法,以及在Web应用中的应用。 一、使用Nod…

    编程 2025-04-27
  • 如何反混淆美团slider.js

    本文将从多个方面详细阐述如何反混淆美团slider.js。在开始之前,需要明确的是,混淆是一种保护JavaScript代码的方法,其目的是使代码难以理解和修改。因此,在进行反混淆操…

    编程 2025-04-27
  • Python要学JS吗?

    Python和JavaScript都是非常受欢迎的编程语言。然而,你可能会问,既然我已经学了Python,是不是也需要学一下JS呢?在本文中,我们将围绕这个问题进行讨论,并从多个角…

    编程 2025-04-27
  • 解决js ajax post 419问题

    对于使用ajax post请求时出现的419问题,我们需要进行以下几个方面的阐述,包括返回码的含义、可能出现的情况、解决方案等内容。 一、解析419返回码 419返回码表示用户超时…

    编程 2025-04-27
  • Three.js实现室内模型行走

    在本文中,将介绍如何使用Three.js创建室内模型,并在场景中实现行走。为了实现这一目标,需要完成以下任务: 加载室内模型及材质贴图 实现摄像机控制,支持用户自由行走 添加光源,…

    编程 2025-04-25

发表回复

登录后才能评论