Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不接受一系列点(.)的正则表达式_Javascript_Regex - Fatal编程技术网

Javascript 不接受一系列点(.)的正则表达式

Javascript 不接受一系列点(.)的正则表达式,javascript,regex,Javascript,Regex,我正在使用Javascript,其中我接受通过URL发送的文件名 我写了一个正则表达式来省略特殊字符 isFileNameValid: function (value) { return new RegExp("([\\\:\*\?\"\<\>\|\/])").test(value); } isFileNameValid:函数(值) {

我正在使用Javascript,其中我接受通过URL发送的文件名

我写了一个正则表达式来省略特殊字符

    isFileNameValid: function (value)
    {                                 
        return new RegExp("([\\\:\*\?\"\<\>\|\/])").test(value);
    }
isFileNameValid:函数(值)
{                                 
返回新的RegExp(([\\\\:\*\?\“\\\\\\;\/]));
}
但我没有找到一种方法将其与正则表达式相结合,正则表达式不接受具有连续点的字符串


任何帮助都是值得的。

我不太确定您想要什么,因为这似乎是在批准包含这些特殊字符之一的字符串(而不是从您所说的操作中删除它们)

但是,如果您希望在当前正则表达式为true且字符串包含连续句点时此函数返回false,则可以使用以下命令

[\\\\:\*\?\“\\\\/]\\.{2,}

如果你想要相反的逻辑,这应该可以做到


我强烈建议使用正则表达式可视化工具,就像这类东西一样-使它更简单

我不太确定您想要什么,因为这似乎是批准包含这些特殊字符之一的字符串(而不是从您所说的操作中去掉它们)

但是,如果您希望在当前正则表达式为true且字符串包含连续句点时此函数返回false,则可以使用以下命令

[\\\\:\*\?\“\\\\/]\\.{2,}

如果你想要相反的逻辑,这应该可以做到


我强烈建议您使用正则表达式可视化工具,就像这类东西一样-使它更容易

在您的情况下,我只需向测试函数添加另一个正则表达式,如

isFileNameValid:函数(值)
{                                 
返回/([:*?“|\/])/.test(值)和&!/[.]{2}/.test(值);
}

正如上面的评论所述,我不认为
/([:*?“\/])/
是正确的。这样,你只需测试字符
*
,或
//code>中的一个是否在
值中,如果是,它是一个有效的文件名

在您的情况下,我只需向测试函数添加另一个正则表达式,如

isFileNameValid:函数(值)
{                                 
返回/([:*?“|\/])/.test(值)和&!/[.]{2}/.test(值);
}


正如上面的评论所述,我不认为
/([:*?“| \/])/
是正确的。这样,您只需测试字符
*
中的一个是否在
值中,如果是这样,它是一个有效的文件名?!

[^.]2,}
这只是说存在两个彼此连续的非
字符,但它没有检查字符串是否没有两个连续的
。对-
\.{2,}
有。问题不清楚,所以我列出了这两个。
[^\.]{2,}
不是“没有
\.{2,}
的对立面这仍然不够,因为检查可以在字符串末尾成功。负前瞻应该锚定到字符串的开头。无论如何,要求太不明确,无法建议对正则表达式进行任何改进。@Patrick您的解决方案还禁止字符串中出现“2”。
[^\.]{2,}
这只表示存在两个非
字符,但它不会检查字符串中是否没有两个连续的
.right-
\。{2,}
有。问题不清楚,所以我列出了两者。
[^\.]{2,}
不是“没有
\.{2,}
”的对立面这仍然不够,因为检查可以在字符串末尾成功。负前瞻应该定位到字符串的开头。无论如何,要求太不明确,无法建议对正则表达式进行任何改进。@Patrick您的解决方案还禁止在字符串中使用“2”。不清楚您的尝试想要什么。您可以只要它包含这些特殊字符,就允许任何东西。我有另一个函数,它通过这个函数返回true,显示一个消息框,文件名是无效的意思。我们不知道用当前代码考虑什么有效文件名。我建议使用正则表达式文字而不是字符串。(如果您不需要在正则表达式模式中包含变量内容)->您的正则表达式应该是“/”([\:*?“|\/)/`如果你想要的话,我没有胶水have@nhahtdh我认为文件名是有效的,如果它不包含任何上面列出的字符和连续的点。不清楚您想要的是什么。只要包含特殊字符,您就可以允许任何内容。在显示一个消息框时,文件名是无效的,我们不知道用当前代码考虑一个有效的文件名。我建议使用正则表达式文字代替字符串(如果您不需要将变量内容包含到正则表达式中)> >您的正则表达式将是'/(\:**)/]。/`如果你想要的话,我没有胶水have@nhahtdh我认为文件名有效,如果它不包含任何上述列出的字符和连续的点。