Parse string in javascript
Asked Answered
G

3

5

How can I parse this string on a javascript,

var string = "http://www.facebook.com/photo.php?fbid=322916384419110&set=a.265956512115091.68575.100001022542275&type=1";

I just want to get the "265956512115091" on the string. I somehow parse this string but, still not enough to get what I wanted.

my code:

var newstring = string.match(/set=[^ ]+/)[0]; 

returns:

a.265956512115091.68575.100001022542275&type=1
Gym answered 28/1, 2012 at 13:21 Comment(1)
To properly parse this, you should first dissect it into its parts (e,g, the key-values of the query string), then URL-decode the key and value, and only then extract the data you're interested in from the value with the key you're interested in.Quirinal
C
5
try this : 

  var g=string.match(/set=[a-z]\.([^.]+)/);

g[1] will have the value

http://jsbin.com/anuhog/edit#source

Copland answered 28/1, 2012 at 13:29 Comment(0)
D
3

You could use split() to modify your code like this:

var newstring = string.match(/set=[^ ]+/)[0].split(".")[1]; 

For a more generic approach to parsing query strings see:

Parse query string in JavaScript

Using the example illustrated there, you would do the following:

var newstring = getQueryVariable("set").split(".")[1];

Delfeena answered 28/1, 2012 at 13:27 Comment(2)
My first instinct was to modify the regex too, but I thought the more general notion of parsing a query string was helpful. Braveyard's answer answer (linked above) is based on split() and I just carried forward in kind.Delfeena
If you want something generic, then by all means do apply proper URL decoding!Quirinal
D
0

You can use capturing group in the regex.

const str = 'http://www.facebook.com/photo.php?fbid=322916384419110&set=a.265956512115091.68575.100001022542275&type=1';

console.log(/&set=(.*)&/.exec(str)[1]);
Donadonadee answered 26/1, 2022 at 6:30 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.