javascript - 编写包含特殊保留字符的 Javascript 正则表达式

标签 javascript regex

我正在编写一个函数,该函数采用预期的文件名并对其进行验证,以确保文件名中不存在系统不允许的字符。这些是不允许的字符:/\| *? “<>

显然,我可以使用 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/

相关文章:

javascript - 如何使用 require Js 和 Backbone 加载动态 View css 文件

javascript - 单击时如何获取 <a> 上的值

Javascript 滑动悬停 LI

python - 在下一个方法中使用正则表达式和捕获组

javascript - 使用 JavaScript 合并表行

获取div信息的Javascript

php - 如何删除另一个div中的唯一div标签

php - 从 mysql 表中删除逗号集

java - 如何在java中删除单词模式后的逗号

c++ - 使用 boost::regex 更改文件中数据的格式