JavaScript提供了一種更簡便的方法用於比較兩個字符串——localeCompare(),localeCompare()使用本地特定的順序來比較兩個字符串,語法如下:
string.localeCompare(target)
參數target是要與string進行比較的字符串。
如果string小於target,則localeCompare()返回小於0的數;
如果string大於target,返回大於0的數;
如果相等(或按照本地順序的約定兩者順序相當),則返回0。
利用該方法替換上面冗長的作法后,除了代碼減少了之外,運行速度也快了不少,而且還支持其它字符庫的本地排序。
修改后代碼如下:
<html>
<head>
<title>漢字排序</title>
<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)}); //正序排列 a.sort(function(a,b){return b.localeCompare(a)}); //反序排列document.getElementById(‘r2′).value=a;
}
//–>
</script>
</head><body>
<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></body>
</html>
該方法目前已作為ECMAScript v3標准,在支持JavaScript 1.5(Mozilla、Netscape 6+)以及JScript 5.5(IE 5.5+)的瀏覽器中均得到了支持。
