4
#anotherdata=value#iamlookingforthis=226885#id=101&start=1

Given the string above how could I extract "iamlookingforthis=226885" in the string? value of it might change as this is dynamic. So, other instance might be "iamlookingforthis=1105". The location/sequence might also change, it could be in the middle or last part.

Thank you in advance.

4
  • 2
    You told us what about the string might change, but in order to grab this specific part, we'll need to know what's constant. Is it always between #s? Is it always iamlookingforthis? Commented Jan 6, 2017 at 22:18
  • 1
    Possible duplicate of How to check if one string contains another substring in JavaScript? Commented Jan 6, 2017 at 22:18
  • Why iamlookingforthis=226885 instead of e.g. anotherdata=value or id=101&start=1? Commented Jan 6, 2017 at 22:18
  • 1
    Why has this question got so many downvotes? I understood what OP was asking immediately. @OneNeptune the question clearly asks how to "extract". What has OP's question got to do with checking if a string contains a value? Commented Jan 11, 2017 at 9:21

2 Answers 2

8

You can use Regex to match a specific text.

Like this for example

var str = '#anotherdata=value#iamlookingforthis=226885#id=101&start=1';
var value = str.match(/#iamlookingforthis=(\d+)/i)[1];

alert(value); // 226885

Explanation from Regex101:

#iamlookingforthis= matches the characters #iamlookingforthis= literally (case insensitive)

  • 1st Capturing Group (\d+)
    • \d+ matches a digit (equal to [0-9])
    • + Quantifier — Matches between one and unlimited times, as many times as possible, giving back as needed (greedy)
  • Global pattern flags
    • i modifier: insensitive. Case insensitive match (ignores case of [a-zA-Z])

See


Another alternative would be to split the string. You could split it by #|?|&.

var str = '#anotherdata=value#iamlookingforthis=226885#id=101&start=1';
var parts = str.split(/[#\?&]/g); // split the string with these characters

// find the piece with the key `iamlookingforthis`
var filteredParts = parts.filter(function (part) {
  return part.split('=')[0] === 'iamlookingforthis';
});

// from the filtered array, get the first [0]
// split the value and key, and grab the value [1]
var iamlookingforthis = filteredParts[0].split('=')[1];

alert(iamlookingforthis); // 226885

Sign up to request clarification or add additional context in comments.

1 Comment

var str = '#anotherdata=value#iamlookingforthis=226885#id=101&start=1'; var value = str.match(/#iamlookingforthis=(\d+)/i)[1]; alert(value); // 226885 If I am not sure about what would be the value how will I modify the regex? It could be something like #iamlookingforthis=textvalue or #iamlookingforthis=alphanumeric or #iamlookingforthis=anything
3

Here's a snippet:

var str = '#anotherdata=value#iamlookingforthis=226885#id=101&start=1';

var extracted = str.split("#").find(function(v){ 
  return v.indexOf("iamlookingforthis") > -1;
});

alert(extracted); // iamlookingforthis=226885

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.