Javascript csv编号从1到4096的正则表达式
我需要一个正则表达式,它可以匹配由逗号分隔的从1到4096的数字字符串。 我有一个regix可以检查数字1-1000,但不知道如何更改它来检查数字是否小于4096 这将允许逗号后出现空格:Javascript csv编号从1到4096的正则表达式,javascript,regex,Javascript,Regex,我需要一个正则表达式,它可以匹配由逗号分隔的从1到4096的数字字符串。 我有一个regix可以检查数字1-1000,但不知道如何更改它来检查数字是否小于4096 这将允许逗号后出现空格: ^([1-9][0-9]{0,2}| 1000)(,\s*([1-9][0-9]{0,2}| 1000))*$我认为这对正则表达式来说不是问题。 如果你有一个由逗号分隔的数字串,那么把它们转换成一个数组,像数字一样过滤它们,而不是用正则表达式 var nums=“1,4,790040974095”; var
^([1-9][0-9]{0,2}| 1000)(,\s*([1-9][0-9]{0,2}| 1000))*$我认为这对正则表达式来说不是问题。 如果你有一个由逗号分隔的数字串,那么把它们转换成一个数组,像数字一样过滤它们,而不是用正则表达式
var nums=“1,4,790040974095”;
var result=nums.split(“,”).filter(函数(v){
返回v<4096;
});
控制台日志(结果)代码>我不认为这是正则表达式的问题。
如果你有一个由逗号分隔的数字串,那么把它们转换成一个数组,像数字一样过滤它们,而不是用正则表达式
var nums=“1,4,790040974095”;
var result=nums.split(“,”).filter(函数(v){
返回v<4096;
});
控制台日志(结果)代码>使用正则表达式只会使它变得更复杂,您可以使用以下方法:
function matchStr(ch){
var str = ch.split(","); //Split the string to an array
for(var i=0;i<str.length;i++){ //Go through the integers
if(parseInt(str[i]) > 4096 || parseInt(str[i]) < 0) //If the integer is bigger that 4096
return false;
}
return true;
}
函数匹配str(ch){
var str=ch.split(,“”;//将字符串拆分为数组
对于(var i=0;i 4096 | | parseInt(str[i])<0)//如果整数大于4096
返回false;
}
返回true;
}
使用正则表达式只会使它变得更复杂,您可以使用以下方法:
function matchStr(ch){
var str = ch.split(","); //Split the string to an array
for(var i=0;i<str.length;i++){ //Go through the integers
if(parseInt(str[i]) > 4096 || parseInt(str[i]) < 0) //If the integer is bigger that 4096
return false;
}
return true;
}
函数匹配str(ch){
var str=ch.split(,“”;//将字符串拆分为数组
对于(var i=0;i 4096 | | parseInt(str[i])<0)//如果整数大于4096
返回false;
}
返回true;
}
试试这个
^(([1-9][0-9]{0,2}|[1-3][0-9][0-9][0-9]|40([0-8][0-9]|9[0-6]))(,\s*[1-9][0-9]{0,2}|[1-3][0-9][0-9][0-9]|40([0-8][0-9]|9[0-6]))*)$
修复?试试这个
^(([1-9][0-9]{0,2}|[1-3][0-9][0-9][0-9]|40([0-8][0-9]|9[0-6]))(,\s*[1-9][0-9]{0,2}|[1-3][0-9][0-9][0-9]|40([0-8][0-9]|9[0-6]))*)$
修正了吗?1-1000中的任何一个不是小于4096吗?是的,但此regix也不接受高于1000的任何内容。它将不接受小于4096的1001或2202以及有效值。您能给我们一个有效和无效输入的示例,以便我们可以帮助您吗?有什么原因您不能作为整数计算吗?数字是否已填充?e、 g.零填充0001,0002
或空格填充'1,2'是否有任何1-1000小于4096?是的,但此区域也不接受任何大于1000的内容。它将不接受小于4096的1001或2202以及有效值。您能给我们一个有效和无效输入的示例,以便我们可以帮助您吗?有什么原因您不能作为整数计算吗?数字是否已填充?e、 g.零填充00010002
或空格填充'1,2',我有理由使用正则表达式。其中一个原因是,输入字段输入可以很好地与regex配合使用,而不是为其编写代码。使用pattern属性检查输入的内容是否只有数字和逗号,然后使用此代码检查其有效性。我有理由使用regex。其中一个原因是,输入字段输入可以很好地与regex配合使用,而不是为其编写代码。使用pattern属性检查输入的内容是否只有数字和逗号,然后使用此代码检查其有效性。只是为了好玩(因为我非常同意其他人的观点,正则表达式是为其他目的而设计的)我也构建了它:^((?:\b(?:\d|[1-9]\d|[1-9]\d|[1-9]\d|[1-9]\d\d|[1-3]\d\d\d|40[0-8][0-9]| 409[0-5])+)$
当然,d可以用[0-9]@zolo替换,我同意。有趣的regexp难题,但我会在现实生活中使用代码,而不是regexp。我发现它很有趣。只是为了好玩(因为我同意其他人的观点,正则表达式是为其他目的而设计的)我也构建了它:^((?:\b(?:\d|[1-9]\d|[1-9]\d|[1-9]\d\d|[1-3]\d\d\d|40[0-8][0-9]| 409[0-5,)+)$
当然,d可以用[0-9]@zolo代替。有趣的regexp难题,但我会在现实生活中使用代码,而不是regexp。我很高兴弄明白了。