javascriptで、ある文字列中にある文字が何個含まれているか調べる方法
いろいろな方法が考えられたので、一番早い方法は何か調べてみることにしました。以下がそのテストコードです。Arrayの要素数は要調整です。
私の環境では一番上がよさそうということになりました。
var str = Array(100).join(Array(100).join("test") + "\n"), result = Array(4); var d = (new Date).getTime(); str.match(/\n/g).length; result[0] = (new Date).getTime() - d; var d = (new Date).getTime(); str.split("\n").length - 1; result[1] = (new Date).getTime() - d; var d = (new Date).getTime(); var i = 0, count = function () { ++i;}; str.replace(/\n/g, count); result[2] = (new Date).getTime() - d; var d = (new Date).getTime(); str.replace(/[^\n]/g, "").length; result[3] = (new Date).getTime() - d; var d = (new Date).getTime(); for (var i = 0, n = 0; i < str.length; ++i) if (str[i] === "\n") ++n; result[4] = (new Date).getTime() - d; alert(result);