前回、単純なjavascriptでテキストのソートを行う方法を紹介しましたが、 より高度なソートを行うには、sort()の引数に比較を行う関数を与えます。 例えば、次のHTMLをChromeのアドレスバーに貼り付けると、文字”=”以降の文字列を使ってソートを行うことが出来ます。 (Aipoのpropertiesファイルを値でソートすることが出来ます)
data:text/html, <!DOCTYPE html> <html contenteditable> <head> <title>Do</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <script language="JavaScript"> function doScript(val){ var val=val.split(/\r?\n/g).sort(compare).join("\r"); document.getElementById('result').value =val; } function compare(val1, val2){ compStr=document.getElementById('compStr').value; cval1=val1.substr(val1.indexOf(compStr)); cval2=val2.substr(val2.indexOf(compStr)); if (cval1 < cval2){return -1;} return 1; } </script> <form id="editor" action="/search" method="GET" onsubmit="doScript(this.val.value);return false;"> <textarea name="val" > value</textarea> <input type="submit" value="DoScript"/> </form> <textarea id="compStr">=</textarea> <textarea id="result">result</textarea> </body></html>