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

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

中文拼音排序一直都是很有趣的一个问题。推荐使用这个函数 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]

题主是否想询问“js自动填完手机号无法获取验证码的原因有哪些”?js自动填完手机号无法获取验证码的原因有被拦截、手机停机、关机。

1、手机装了拦截软件收不到验证码,解除应用软件的短信拦截,或者更换手机尝试。

2、手机关机、暂无信号、欠费或者停机。

js中如何判断用户输入的是否是中文

var str ='我' ;//用户输入

if(/^[\u4e00-\u9fa5]+$/itest(str)){

alert('全是中文’);

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<body>

</body>

<script type="text/javascript">

    var a = "ZhouXingChi";

    var ret = "";

    for (var i = 0; i < alength; i++) {

    var c = acharAt(i);

    if (/^[A-Z]+$/test(c) && i > 0) {

    ret += " " + c;

    } else {

    ret += c;

    }

    }

    consolelog(ret);

</script>

</html>

验证码在我们的后台代码生成,也就是在java代码里生成。然后在页面上显示出来,当用户输入验证码后再检验用户输入的验证码是否和后台生成的验证码相同,比较的时候可以通过ajax去比较,坚决反对用个隐藏域来保存后台生成的验证码,因为这样很容易被攻击

直接使用js中的value属相即可获取到输入框的内容。

代码示例如下:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>获取输入框的值</title>

<script type="text/javascript">

windowonload=function(){

var bt=documentgetElementById("bt2");

var btt=documentgetElementById("bt1");

btonclick=function(){

alert(bt1value);

}

}

</script>

</head>

<body>

请输入内容<input type="text" id="bt1" /><br>

<input type="button" id="bt2" value="获取输入数据" />

</body>

</html>

效果如下:

以上就是关于javascript中文按照拼音首字母排序,如何实现全部的内容,包括:javascript中文按照拼音首字母排序,如何实现、js自动填完手机号无法获取验证码、js判断输入的值是拼音还是五笔等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存