Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

React Native - get url search params

I am trying to get URL params in a React Native app.

What I tried to do:

  1. fails because searchParams is an empty list
const parsedUrl = new URL(url)

// here the searchParams are empty list
console.log(parsedUrl.searchParams)
  1. fails because the following error is shown:

[Error: not implemented]

const parsedUrl = new URLSearchParams(url)
console.log(parsedUrl.get(param))
like image 600
spatak Avatar asked Nov 19 '25 01:11

spatak


2 Answers

You Can Try this:

( Only For React Js )

function getURLParams(parameterName, url) {
  let name = parameterName.replace(/[\[\]]/g, '\\$&');
  let regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), results = regex.exec(url);
  if (!results) return null;
  if (!results[2]) return null;
  return decodeURIComponent(results[2].replace(/\+/g, ' '));
}

// For Current Window URL
console.log(getURLParams("param1", window.location.href));

// For Custom URL
console.log(getURLParams("param1", "https://example.com/index.html?param1=Hello"));

Or This

( For React Native )

var url = "http://example.com?param1=test&param2=someData&number=123"

var regex = /[?&]([^=#]+)=([^&#]*)/g,
  params = {},
  match;
while (match = regex.exec(url)) {
  params[match[1]] = match[2];
}

console.log(params)
like image 92
Aditya Avatar answered Nov 20 '25 15:11

Aditya


const getSearchParamFromURL = (url, param) => {
  const include = url.includes(param)

  if (!include) return null

  const params = url.split(/([&,?,=])/)
  const index = params.indexOf(param)
  const value = params[index + 2]
  return value
}

const _url = 'myapp://?code=123123-1123123-418c-33213-123123&param_key=param_value'

getSearchParamFromURL(_url, 'code') // output: 123123-1123123-418c-33213-123123
like image 30
spatak Avatar answered Nov 20 '25 14:11

spatak



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!