Single vs Multiple RegExp

Benchmark created on


Setup

const cookie = '_dd_device_id=16xx1oi82t3; TAconsentID=c836ed42-286b-4e24-9fa8-c71338cb608a; __utmc=118189334; intercom-device-id-x9u0q6k2=d7609073-eb6b-4c58-a001-d463f9eac138; _hjSessionUser_1245093=eyJpZCI6ImE0NjVlYWY5LTJhNmMtNTZkZS04MDM3LThiN2Y5OTEyMTIwMyIsImNyZWF0ZWQiOjE3NDcyMjMwMzc1MzIsImV4aXN0aW5nIjp0cnVlfQ==; _ga_2R3X51K66C=GS2.1.s1747231948$o3$g1$t1747233314$j0$l0$h0; __zlcmid=1Rdnbx2QyP5oiEg; tag_user_id=8d79fd5f-d0ac-4393-8305-573aaa8c3144-1747908146328; AMCVS_98CF678254E93B1B0A4C98A5%40AdobeOrg=1; AMCV_98CF678254E93B1B0A4C98A5%40AdobeOrg=179643557%7CMCMID%7C15125837260914103011375587470852825930%7CMCAAMLH-1750079861%7C6%7CMCAAMB-1750079861%7C6G1ynYcLPuiQxYZrsz_pkqfLG9yMXBpb2zX5dvJdYQJzPXImdj0y%7CMCOPTOUT-1749482261s%7CNONE%7CvVersion%7C5.5.0; s_cc=true; dd-utm-source=google; dd-utm-medium=paid-search; dd-utm-matchtype=p; _dd_device_id=1aapus7jwmi; dd-utm-campaign=dg-rum-emea-ios; dd-utm-keyword=ios%20application%20performance%20monitoring; dd-utm-campaignid=14746103004; dd-utm-adgroupid=133515000851; gclid=Cj0KCQjw4qHEBhCDARIsALYKFNPb8JlTxSqm_qqnvBUKtAI7ojVop9YlrUz8qdRqaGfL_ZmGZ78kGUQaAuwUEALw_wcB; _hjSessionUser_5020336=eyJpZCI6IjY5ZjliZDY5LTU4YWUtNTcyOS1hMDVkLTVkMzhmNWU5ZjYxMyIsImNyZWF0ZWQiOjE3NTUwMDQ4OTQzNTMsImV4aXN0aW5nIjp0cnVlfQ==; signals-sdk-user-id=82f8615b-d57d-47e1-b53d-7225696afb17; _fbp=fb.1.1755528033029.48279350133310913; _mkto_trk=id:875-UVY-685&token:_mch-datadoghq.com-15070c3131f44f5b956d1c22d7bdfcc8; _yjsu_yjad=1755528033.34c17f10-ba0b-4a53-951b-d9c4497b2c7d; __adroll_fpc=4aaad94717de1a56b648584a5d059776-1755528034027; _li_dcdm_c=.datadoghq.com; _lc2_fpi=41d1e848d488--01k2yszytzrdwwvkmtffph058e; _lc2_fpi_js=41d1e848d488--01k2yszytzrdwwvkmtffph058e; _li_ss=CgA; _gcl_au=1.1.1323554796.1759148798; _clck=16fh59w%5E2%5Efzq%5E0%5E2056; _rdt_uuid=1755528032833.2c94b256-e254-456a-b205-636c47c5a5cc; _ga=GA1.1.1780936139.1759148798; _uetvid=4b8505007c4111f0bd5f0b53ff135152; __ar_v4=DNRNVRRJ6NFOBCFITEZKPQ%3A20250929%3A2%7CBPNOSTJTQFA3HBFU5WDRCM%3A20250929%3A2%7CAWPYDAH5JJH2JGSUWJVDKM%3A20250929%3A2; _ga_KN80RDFSQK=GS2.1.s1759148798$o1$g1$t1759148838$j20$l0$h1447405577; SOME=VALUE; __utma=118189334.1172702401.1747134030.1759915789.1759933579.161; __utmz=118189334.1759933579.161.33.utmcsr=app.datadoghq.com|utmccn=(referral)|utmcmd=referral|utmcct=/; intercom-session-x9u0q6k2=WVk2Qm1qWDFQb1lsdGFmVE82aVRtaENRSDZRRUNUQklsbng3YnExMHB5U3lwRnJQNjFLaHlndjNyM1RUc1dzSWNpU21ueEhXWGNjU2RsOGpveW1PNDJyd3ZFYVpLQW4zcDdjVTVGS3hCSVU9LS1WNXFLY0szUlU1UmtSTHByT2dZNU53PT0=--388df9ad525bb8d090812c252a117fe2c2258bc1; TAsessionID=47759919-73ca-4682-b7dd-99e3f0913b60|EXISTING; notice_behavior=implied|eu; notice_gdpr_prefs=0:; notice_preferences=0:; cmapi_gtm_bl=ga-ms-ua-ta-asp-bzi-sp-awct-cts-csm-img-flc-fls-mpm-mpr-m6d-tc-tdc; cmapi_cookie_privacy=permit_1_required; _dd_s=rum=1&id=4798d4c6-191a-4124-a7e0-5539d01ca166&created=1760007735605&expire=1760008640142&logs=1'

const COMMA_SEPARATED_KEY_VALUE = /([\w-]+)\s*=\s*([^;]+)/g

function findCommaSeparatedValue(rawString, name) {
  COMMA_SEPARATED_KEY_VALUE.lastIndex = 0
  while (true) {
    const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString)
    if (match) {
      if (match[1] === name) {
        return match[2]
      }
    } else {
      break
    }
  }
}

const ALTERNATIVE = /([^()<>@,;:\\"\/[\]?={}]+)\s*=\s*([^;]+)/g

function findCommaSeparatedValueAlternative(rawString, name) {
  const values = rawString.matchAll(ALTERNATIVE)

  return values.find(([key]) => key === name)
}

Test runner

Ready to run.

Testing in
TestOps/sec
findCommaSeparatedValue
findCommaSeparatedValue(cookie, '_dd_s')
ready
alternative
findCommaSeparatedValueAlternative(cookie, '_dd_s')
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.