百渡搜一下n多JavaScript提供了一种更简便的方法用于比较两个字符串——localeCompare(),localeCompare()使用本地特定的顺序来比较两个字符串,语法如下:
string.localeCompare(target)
参数target是要与string进行比较的字符串。
如果string小于target,则localeCompare()返回小于0的数;
如果string大于target,返回大于0的数;
如果相等(或按照本地顺序的约定两者顺序相当),则返回0。
利用该方法替换上面冗长的作法后,除了代码减少了之外,运行速度也快了不少,而且还支持其它字符库的本地排序。
修改后代码如下:该方法目前已作为ECMAScript v3标准,在支持JavaScript 1.5(Mozilla、Netscape 6+)以及JScript 5.5(IE 5.5+)的浏览器中均得到了支持。<script type="text/javascript">
<!--
function startSort(){
var a=document.getElementById('s').value;
a=a.split(',')
a.sort();
document.getElementById('r1').value=a;
a.sort(function(a,b){return a.localeCompare(b)});
document.getElementById('r2').value=a;
}
//-->
</script>
<p>包含汉字的字符串数组(用逗号","隔开):<br />
<textarea id="s" style="width: 100%; overflow: scroll; word-wrap: normal;" rows="10">张韶涵,b土,abort,张学友,something,苹果,五月天,刘德华,香蕉,apple,范玮琪,阿桑</textarea></p><p style="text-align: center"><input type="button" value="排序测试" onclick="startSort()" style="width: 300px" /></p><p>默认排序结果:<br />
<textarea id="r1" style="width: 100%; overflow: scroll; word-wrap: normal;" rows="10"></textarea></p><p>汉字拼音顺序排序结果:<br />
<textarea id="r2" style="width: 100%; overflow: scroll; word-wrap: normal;" rows="10"></textarea></p>
解决方案 »
- var arr = ret.split(" ;");
- 判断数组里是否包含某个值?
- window.open或则利用模态窗口传递已个from表单
- 小女子请教 这是jquery的什么用法 感激涕淋
- 各位大侠帮忙,卡在正则上了~~
- 对于一个给定的网址,如何枚举改网页全部的frame?(网页有N个frame,每个frame又有层数不等的frame)
- jQuery 解析 xml
- 我在js代码中联接一个地址,请问如何控制打开窗口的位置.设定_blank之类, 谢谢 急
- 谁能帮我把这段JAVA代码改成JavaScript?
- 求问个Extjs4.1.0升级到4.2.3之后的困惑
- 关于eval()函数的一个小问题!
- <<请教>>:JavaScript 如何根据条件显示图片.
我已经改出来了,HTML代码不变,只要在JS代码部分加个函数
function Compare(a,b)
{
return a.localeCompare(b);
}
将
names.sort();
改为
names.sort(Compare);
就可以了