
这个说简单不简单,说难不难,如果你想非常精确,非常优化的提示,需要很多人工干预,
如果是完全自动化处理也是可能的,关键是你要用哪一门后台语言。本人只擅长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 可完美迁移。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)