Javascript 匹配返回100而不是实际值
我有一个循环通过的数组。对于数组中的每个值,我将对其进行分析,然后根据它满足的条件将值分流到另一个数组中。不过,出于这个问题的目的,我只是想计算当前数组项中有多少个周期 以下是我试图使用的代码的相关部分:Javascript 匹配返回100而不是实际值,javascript,arrays,match,Javascript,Arrays,Match,我有一个循环通过的数组。对于数组中的每个值,我将对其进行分析,然后根据它满足的条件将值分流到另一个数组中。不过,出于这个问题的目的,我只是想计算当前数组项中有多少个周期 以下是我试图使用的代码的相关部分: for(i = 0; i < (sortarray.length) -1; i++) { var count = (sortarray[i].match(/./g)||[]).length; console.log(count + ' periods found in name
for(i = 0; i < (sortarray.length) -1; i++)
{
var count = (sortarray[i].match(/./g)||[]).length;
console.log(count + ' periods found in name' + sortarray[i]);
if (count > 1)
{
alert('Error: One or more filenames contain periods.');
return;
}
else ...
for(i=0;i<(sortarray.length)-1;i++)
{
var count=(sortarray[i]。匹配(//g)| |[])。长度;
log(在名称'+Sortaray[i]中找到的计数+句点);
如果(计数>1)
{
警报('错误:一个或多个文件名包含句点');
返回;
}
其他的
大多数值都是文件名,只有一个句点,而文件夹名没有句点。任何超过1个句点的值都会弹出一个警告框。看起来很简单,但由于某种原因,我的变量总是返回100而不是1,因此框总是会弹出
有更好的方法来计算每个数组值中的点吗?代替该逻辑,您可以只比较
的第一个索引和
的最后一个索引,如果它们不相等,则表示文件名有多个
for(i = 0; i < (sortarray.length) -1; i++)
{
if (sortarray[i].indexOf(".")!=sortarray[i].lastIndexOf("."))
{
alert('Error: One or more filenames contain periods.');
return;
}
}
for(i=0;i<(sortarray.length)-1;i++)
{
if(sortarray[i].indexOf(“.”)=sortarray[i].lastIndexOf(“.”)
{
警报('错误:一个或多个文件名包含句点');
返回;
}
}
您可以只比较
的第一个索引和
的最后一个索引,而不是该逻辑,如果它们不相等,则表示文件名有多个
for(i = 0; i < (sortarray.length) -1; i++)
{
if (sortarray[i].indexOf(".")!=sortarray[i].lastIndexOf("."))
{
alert('Error: One or more filenames contain periods.');
return;
}
}
for(i=0;i<(sortarray.length)-1;i++)
{
if(sortarray[i].indexOf(“.”)=sortarray[i].lastIndexOf(“.”)
{
警报('错误:一个或多个文件名包含句点');
返回;
}
}
问题在于您的正则表达式。点(.)表示任何字符。此外(由于您使用的是g
选项),您的正则表达式将匹配整个字符串
这就是您获得100的原因:length
在您的整个字符串上被调用
因此,您应该转义点,以便它真正查找点而不是任何字符
sortarray[i].match(/\./g)
问题在于您的正则表达式。点(.)表示任何字符。此外(因为您使用的是g
选项),您的正则表达式将匹配整个字符串
这就是您获得100的原因:length
在您的整个字符串上被调用
因此,您应该转义点,以便它真正查找点而不是任何字符
sortarray[i].match(/\./g)
你需要计算实点\。
.Simple
是一个保留运算符。它意味着:任何字符…你需要计算实点\。
.Simple
是一个保留运算符。它意味着:任何字符…如果我只需要一个是/否检查,这将起作用,但我实际上也需要句点计数。如果我只需要一个是/否检查,但实际上我还需要周期计数。