我正在编写一个函数,该函数采用预期的文件名并对其进行验证,以确保文件名中不存在系统不允许的字符。这些是不允许的字符:/\| *? “<>
显然,我可以使用 string.indexOf() 逐一搜索每个特殊字符,但这比仅使用 string.search() 使用正则表达式查找任何这些字符要长得多在文件名中。
问题在于,这些字符中的大多数都被认为是描述正则表达式的一部分,因此我不确定如何将这些字符包含为正则表达式本身的一部分。例如,Javascript 正则表达式中的/字符告诉 Javascript 它是正则表达式的开头或结尾。如何编写一个 JS 正则表达式,其功能如下: filename.search(\OR/OR | OR * OR ? OR "OR < OR >)
最佳答案
把你的东西放在 character class 中像这样:
[/\\|*?"<>]
您必须转义反斜杠,但其他字符会失去其特殊含义。此外,在这种情况下,RegExp 的 test()
方法比 String.search
更合适。
filenameIsInvalid = /[/\\|*?"<>]/.test(filename);
关于javascript - 编写包含特殊保留字符的 Javascript 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8715680/