[英]Check if a string has number greater than 1
我有一个方法返回一个可能包含数字的字符串。 我将这些数字提取到一个带有逗号分隔值的字符串中。
var stringOne = "Returned 12 string";
var extractNum = "1,2"
我现在想要的是根据正则表达式检查这个字符串,该表达式测试字符串是否有大于 1 的数字? 我尝试了几件事,但似乎都没有奏效。 请建议一种方法来实现它。 提前致谢!
如果您只想测试您的提取字符串是否包含大于 1 的数字,您可以尝试以下代码
function check() {
var str = "1,1,1,1,2,1,1";
var patt = new RegExp("[2-9]");
return patt.test(str); // true
}
var matched = "Returned 12 string".match(/[2-9]/g) if (matched !== null) { alert(matched.join(',')); } else { // No match }
您可以执行以下操作:
var extractNum = "1,2";
var hasGreaterThan1 = extractNum.split(',').some(function(val) { return val > 1; })
请参阅Array.prototype.some
文档
理想情况下,您将解析数字并使用 Javascript 提供的实际数字运算符来执行此操作。
如果你真的必须通过正则表达式来做,你可以使用这样的东西: ^[2-9]|\\d{2,}$
。 这将检查数字是 2 到 9 之间的单个数字还是由两个或多个数字组成的数字。
如果任何数字大于 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;
}
不使用正则表达式
extractNum.split(',').map(function(a){return parseInt(a)>1})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.