检查字符串的数字是否大于1

时间:2015-06-17 09:33:51

标签: javascript regex

我有一个方法可以返回一个可能包含数字的字符串。我将这些数字提取为逗号分隔值的字符串。

var stringOne = "Returned 12 string";
var extractNum = "1,2"

我现在想要的是检查这个字符串是否正常表达式测试该字符串的数字是否大于1?我尝试了很少的东西,但似乎都没有。请建议一种方法来完成它。提前谢谢!

6 个答案:

答案 0 :(得分:3)

如果您只想测试提取字符串是否包含大于1的数字,则可以尝试以下代码

function check() {
        var str = "1,1,1,1,2,1,1";
        var patt = new RegExp("[2-9]");
        return patt.test(str); // true
    }

答案 1 :(得分:2)

var matched = "Returned 12 string".match(/[2-9]/g)

if (matched !== null) {
    alert(matched.join(','));
} else {
// No match
}

答案 2 :(得分:1)

您可以执行以下操作:

var extractNum = "1,2";
var hasGreaterThan1 = extractNum.split(',').some(function(val) { return val > 1; })

请参阅Array.prototype.some

的文档

答案 3 :(得分:0)

理想情况下,您将解析数字并使用Javascript提供的实际数字运算符来执行此操作。

如果确实必须通过正则表达式执行,您可以使用类似的内容:^[2-9]|\d{2,}$。这将检查该数字是2到9之间的单个数字,还是由两个或更多数字组成的数字。

答案 4 :(得分:0)

如果任何数字大于1,

“ok”将为真;

var stringOne = "Returned 12 string";
var extractNum = "1,2"
var ok = haveNrBiggerThan1(extractNum);

function haveNrBiggerThan1(str){
    var nums = str.split(",");
    for(var i=0; i<nums.length; i++){var n=parseInt(nums[i]); if(n>1){return true;}}
    return false;
}

答案 5 :(得分:0)

不使用正则表达式

extractNum.split(',').map(function(a){return parseInt(a)>1})