2015-06-17 71 views
-2

我有一个方法返回一个可能包含数字的字符串。我将这些数字提取成逗号分隔值的字符串。检查一个字符串的数字是否大于1

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

我现在想的是要检查这个字符串对正则表达式的测试,看看如果字符串的数字大于1?我尝试了一些东西,但似乎没有任何工作。请提出一种方法来实现它。提前致谢!

+0

所以,你要看到'extractNum'如果有大于1的数字?你有什么尝试? – putvande

+3

只是为了确保:您的意思是“数字”,而不是“数字”? “10”是否匹配? –

+0

@putvande,对。 –

回答

3

如果你只是想测试一下,如果你的提取字符串containt数大于1,你可以试试下面的代码

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

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

如果你真的必须通过正则表达式来做到这一点,你可以使用这样的东西:^[2-9]|\d{2,}$。这将检查该号码是2到9之间的单个数字还是由两个或更多个数字组成的数字。

1

你可以做到以下几点:

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

查看文档Array.prototype.some

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; 
} 
+0

该死的你击败了我20秒:p – moffeltje

2

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

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

0

不使用正则表达式

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