Javascript 不接受一系列点(.)的正则表达式
我正在使用Javascript,其中我接受通过URL发送的文件名 我写了一个正则表达式来省略特殊字符Javascript 不接受一系列点(.)的正则表达式,javascript,regex,Javascript,Regex,我正在使用Javascript,其中我接受通过URL发送的文件名 我写了一个正则表达式来省略特殊字符 isFileNameValid: function (value) { return new RegExp("([\\\:\*\?\"\<\>\|\/])").test(value); } isFileNameValid:函数(值) {
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我认为文件名有效,如果它不包含任何上述列出的字符和连续的点。