Eugene
Eugene

Reputation: 343

Getting range from a list using regular expressions

I have a list of numbers such as

var list = ["123","12345678","123","234,2345","2.34567","123.12345","-123","-0.1234","-324215.45"];

This list can have negative, positive numbers with optional decimal values, also negative or positive.

I need to use regular expressions to do 3 things:

  1. getAllNumbersBeforeValue(value);
  2. getAllNumbersAfterValue(value);
  3. getRangeBetweenValues(valueFrom, valueTo);

Value passed in is not known, could be any number.

Update 1:

I've got this, which isn't perfect but works on some numbers:

var a = function(rand) {
    var val = "";

    var numArr = rand.split("");
    for(var i = 0; i < numArr.length; i++) {
        val = val + (Number(numArr[i])+1);
    }
    return "^[^" + val.split("").join("-9][^") + "-9]$"
}; // outputs "^[^2-9][^3-9][^4-9][^5-9][^6-9]$" with rand "12345"

Im trying to get a regular expression programmatically generated from a given value For example "123456" is a random number (rand), I would like to be able to filter an array of numbers for values that are higher then rand (or lower then rand) using a regex value.

Thanks

Upvotes: 0

Views: 75

Answers (1)

xspydr
xspydr

Reputation: 3060

You could use underscore.js (http://underscorejs.org) to filter your results. For example...

var list = ["123","12345678","123","234,2345","2.34567","123.12345","-123","-0.1234","-324215.45"];

function getAllNumbersBeforeValue(list, value) {
    return _.filter(list, function(num) { 
        return num < value; 
    });
}

Here's an example without using a framework...

function getAllNumbersBeforeValue(list, value) {
    var output = [];
    for(var i = 0; i < list.length; i++) {
        if(list[i] < value) {
            output.push(list[i]);
        }
    }
    return output;
}



getAllNumbersBeforeValue(list, 123);

Upvotes: 1

Related Questions