js判断输入的值是拼音还是五笔

js判断输入的值是拼音还是五笔,第1张

这个说简单不简单,说难不难,如果你想非常精确,非常优化的提示,需要很多人工干预,

如果是完全自动化处理也是可能的,关键是你要用哪一门后台语言。本人只擅长PHP,先讲下原理。

就是把你首先你要筛选出一堆提示关键字, 按拼音的字母排序,然后,每次ajax查询时候如果用户输入纯英文,就跟汉字首字母比较。比如你给的JS,匹配字“即时,检索,解释"什么的,就可以显示。

这时候你要说了,我怎么取汉字首字母,难道手工打上去并排序么。这其实可以用程序来取。百度找“jsp把汉字转拼音”或者php把汉字转拼音,这些都有现成的函数。做一次2次开发,用个页面接收你输入的关键字取每个拼音首字母,然后输入到数据库关键字表中,输出到txt、xml、内存缓存做关键词提示的时候可以再按拼音和优先级排序,mysql是可以用拼音排序的。比如下面的数据项(仅供参考,你喜欢怎么写都行)

建设 /jianshe / JS / 0 / 1

这样就一行。第一项主键,第二项是全拼音索引,用来排序和备用,最后2个是查询的次数和手工的加权数,

然后服务器查询的时候,依靠第三项JS,查询出一堆符合的汉字,结合后2位数算出优先级大小显示前10个就可以。用户查询后获取他用的关键字,然后查询次数+1。

你既然写过这类程序,这个检索汉字功能关键就是转拼音的2次开发,取首字母并排序生成一个新型的词库。也不算太有差异。

JS电脑方面有两个方面的缩写意义

JS是脚本语言javascript的缩写,该语言一般用在浏览器等相关脚本中使用,当然也可以用在ASP的服务器端,这种语言是一种边解释边执行的语言,不需要进行编译,所以没有编译态

由于玩电脑时常与硬件打交道,这种情况下,可能与不少商家要打交道的而有些不良的商家以次充好,忽悠买主,这类的商家我们称之为"奸商"用JS(汉语拼音的两个字母),还有商家拿水货当行货买,本打算买行货,一不小心买成了水货!这类的商家店里十之八九没有真东西,差不多都是假货,所以如果称他们为"假商(JS)"也是可以了,但奸商与假商在汉语中区别不大,看到JS时,无论是奸商还是假商都是让人可恨的!所以JS可以直接认为是奸商!

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

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

arraysort(

function compareFunction(param1, param2) {

return param1localeCompare(param2);

}

);

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

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

function pySegSort(arr) {

if(!StringprototypelocaleCompare)

return null;

var letters = "abcdefghjklmnopqrstwxyz"split('');

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

var segs = [];

var curr;

lettersforEach(function(item,i){

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

arrforEach(function(item2){

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

currdatapush(item2);

}

});

if(currdatalength) {

segspush(curr);

currdatasort(function(a,b){

return alocaleCompare(b);

});

}

});

return segs;

}

测试:

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

结果:

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

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

documentwrite(arr+"");

arrsort(function(a,b){

return alocaleCompare(b);

});

documentwrite(arr);

定义和用法:

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

语法:

stringObjectlocaleCompare(target)

参数描述:

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

返回值:

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

说明:

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

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

参考资料

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

代码如下:

function checkFormat(str)

{

if (escape(str)indexOf("%u")!=-1)

alert("不能含有汉字");

else if(strmatch(/D/)!=null)

{

alert('不能含有字母');

}

}

这个怎么看都觉得是自定义的函数吧,是不是把字符串转换成拼音?

一般这类函数用法都是点加函数名的。比如:

var myString = "测试字符串";

myStringPinyin=myStringtopinyin();

或者另一种办法,你也可以试试:

var myString="测试字符串";

myStringPinyin=topinyin(myString);

以上就是关于js判断输入的值是拼音还是五笔全部的内容,包括:js判断输入的值是拼音还是五笔、js从字典里取到一个字,用什么算法最快、求 js 文本框输入拼音出现下拉框列表的特效代码 就像百度搜索框一样 要完整demo 可完美迁移。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9325455.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存