tunnckoCore/starts-with

View on GitHub
benchmark/implementations-browser.js

Summary

Maintainability
C
7 hrs
Test Coverage
/* jshint asi:true, unused:false */

'use strict'

function startsWithIndexOf (a, b) {
  a = String(a)
  b = String(b)
  return a.indexOf(b) === 0
}

function startsWithLastIndexOf (a, b) {
  a = String(a)
  b = String(b)
  var i = a.lastIndexOf(b)
  return i === 0
}

function startsWithReExec (a, b) {
  a = String(a)
  b = String(b)
  var re = new RegExp('^' + b)
  return !!re.exec(a)
}

function startsWithReTest (a, baz) {
  a = String(a)
  baz = String(baz)
  return new RegExp('^' + baz)
}

function startsWithReSearch (a, b) {
  a = String(a)
  b = String(b)
  var re = new RegExp('^' + b)
  return a.search(re) !== -1
}

function startsWithSlice (a, b) {
  a = String(a)
  b = String(b)
  return a.slice(0, b.length) === b
}

function startsWithNative (a, b) {
  a = String(a)
  b = String(b)
  return a.startsWith(b)
}

function startsWithSubStr (a, b) {
  a = String(a)
  b = String(b)
  return a.substr(0, b.length) === b
}

function startsWithSubString (a, b) {
  a = String(a)
  b = String(b)
  return a.substring(0, b.length) === b
}

function startsWithTricky (a, b) {
  a = String(a)
  b = String(b)
  if (a.charAt(0) !== b.charAt(0)) {
    return false
  }
  return true
}

function startsWithWhile (a, b) {
  a = String(a)
  b = String(b)

  var i = b.length
  while (i--) {
    if (a[i] !== b[i]) {
      return false
    }
  }

  return true
}