//boyer-moore? module.exports = function bm(buf,search,offset){ var m = 0, j = 0 var table = [] var ret = -1; for(var i=offset||0;i0;--j){ table[i].push([i+j,j]) console.log('j',j) if(buf[i+j] !== search[j]) { //i += j j = -1 break } } if(j === 0) { ret = i break } } } console.log(table) renderTable(table,buf,search) return ret } var chalk = require('chalk') function renderTable(table,buf,search){ var s = '' console.log('-----') console.log('search:',search) console.log('-----') console.log(buf+'') table.forEach(function(a){ if(!a) return;// console.log('') a.forEach(function(v){ if(!v) return; var pad = '' while(pad.length < v[0]){ pad += ' ' } if(search[v[1]] === buf[v[0]]) console.log(pad+chalk.green(search[v[1]])) else console.log(pad+chalk.red(search[v[1]])) }) }) console.log('-----') }