我有一个方法返回一个可能包含数字的字符串。我将这些数字提取成逗号分隔值的字符串。检查一个字符串的数字是否大于1
var stringOne = "Returned 12 string";
var extractNum = "1,2"
我现在想的是要检查这个字符串对正则表达式的测试,看看如果字符串的数字大于1?我尝试了一些东西,但似乎没有任何工作。请提出一种方法来实现它。提前致谢!
我有一个方法返回一个可能包含数字的字符串。我将这些数字提取成逗号分隔值的字符串。检查一个字符串的数字是否大于1
var stringOne = "Returned 12 string";
var extractNum = "1,2"
我现在想的是要检查这个字符串对正则表达式的测试,看看如果字符串的数字大于1?我尝试了一些东西,但似乎没有任何工作。请提出一种方法来实现它。提前致谢!
如果你只是想测试一下,如果你的提取字符串containt数大于1,你可以试试下面的代码
function check() {
var str = "1,1,1,1,2,1,1";
var patt = new RegExp("[2-9]");
return patt.test(str); // true
}
理想情况下,您将解析数字并使用Javascript提供的实际数值运算符来执行此操作。
如果你真的必须通过正则表达式来做到这一点,你可以使用这样的东西:^[2-9]|\d{2,}$
。这将检查该号码是2到9之间的单个数字还是由两个或更多个数字组成的数字。
你可以做到以下几点:
var extractNum = "1,2";
var hasGreaterThan1 = extractNum.split(',').some(function(val) { return val > 1; })
如果任何数字大于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;
}
该死的你击败了我20秒:p – moffeltje
var matched = "Returned 12 string".match(/[2-9]/g)
if (matched !== null) {
alert(matched.join(','));
} else {
// No match
}
不使用正则表达式
extractNum.split(',').map(function(a){return parseInt(a)>1})
所以,你要看到'extractNum'如果有大于1的数字?你有什么尝试? – putvande
只是为了确保:您的意思是“数字”,而不是“数字”? “10”是否匹配? –
@putvande,对。 –