Files
jsowell-charger-web/jsowell-ui/node_modules/buffer-indexof/bm.js
Lemon f5e6e29f00 Merge branch 'dev-zza' into dev
# Conflicts:
#	jsowell-ui/.env.development
#	jsowell-ui/.env.staging
#	jsowell-ui/bin/build-sit.bat
#	jsowell-ui/bin/build.bat
#	jsowell-ui/src/api/adapayMember/adapayMember.js
#	jsowell-ui/src/api/pile/merchant.js
#	jsowell-ui/src/router/index.js
#	jsowell-ui/src/views/financial/financeDetail.vue
#	jsowell-ui/src/views/financial/merchant.vue
#	jsowell-ui/src/views/homeIndex/homeIndex.vue
#	jsowell-ui/src/views/login.vue
#	jsowell-ui/src/views/pile/basic/detail.vue
#	jsowell-ui/src/views/pile/station/components/SiteInfo.vue
#	jsowell-ui/src/views/pile/station/detail.vue
#	jsowell-ui/src/views/pile/station/orderReport.vue
2025-06-03 14:26:37 +08:00

59 lines
1.1 KiB
JavaScript

//boyer-moore?
module.exports = function bm(buf,search,offset){
var m = 0, j = 0
var table = []
var ret = -1;
for(var i=offset||0;i<buf.length;++i){
console.log('i',i)
table[i] = [[i,0]]
if(buf[i] === search[0]) {
for(j = search.length-1;j>0;--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('-----')
}