我有一个数字列表,例如
var list = ["123","12345678","123","234,2345","2.34567","123.12345","-123","-0.1234","-324215.45"];
此列表可以包含带有可选十进制值的负数正数,也可以是负数或正数。
我需要使用正则表达式来做三件事:
传入的值未知,可以是任何数字。
更新1:
我有这个,这不是很完美,但适用于某些数字:
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"
我试图从给定值以编程方式生成正则表达式 例如,“123456”是一个随机数(rand),我希望能够使用正则表达式值过滤高于rand(或低于rand)的值的数字数组。
由于
答案 0 :(得分:1)
您可以使用underscore.js(http://underscorejs.org)来过滤结果。例如......
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;
});
}
这是一个不使用框架的例子......
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);