使用正则表达式的 html 输入字段摆脱文件名的无效字符

标签 html regex escaping

我的表单中有一个输入字段,用户可以在其中输入稍后将在 Windows 系统上用作文件夹名称的内容。现在我想防止人们使用任何对文件夹名称无效的字符,即 \/:"*?<>| .我找到了 pattern -html input field 的属性我可以在哪里使用正则表达式。现在我无法获得正确的正则表达式并在我的 html 代码中正确转义它:

<div class="form-group">
    <label class="col-md-3 control-label" for="folder_name">Folder-Name:</label>
    <div class="col-md-9">
        <input type="text" class="form-control" id="folder_name" name="folder_name" pattern="[^\\/:\"\*\?<>|]+" required>
    </div>                    
</div>

我做错了什么?

最佳答案

您需要使用 \x22 而不是双引号:

input:valid {
  color: green;
}
input:invalid {
  color: red;
}
<div class="form-group">
    <label class="col-md-3 control-label" for="folder_name">Folder-Name:</label>
    <div class="col-md-9">
        <input type="text" class="form-control" id="folder_name" name="folder_name" pattern="[^\\/:\x22*?<>|]+" required>
    </div>                    
</div>

关于使用正则表达式的 html 输入字段摆脱文件名的无效字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34174543/

相关文章:

javascript - 带 Optgroups 的多选框 : Select one per group

.net - 如何编写能够验证 URI 的正则表达式模式?

python - 单引号字符串与双引号字符串

Java - 转义一个字符

asp.net - 有条件地排除 ASP.NET WebForms 中的 html block

javascript - jQuery 根据匹配的 id 隐藏类

php - 如何在提交的表单页面中显示 recaptcha 错误?

php - html 文档中的正则表达式 : match all but every <(pre|code|textarea)>(. *?)</\\1>

java - 男性和女性字符串的正则表达式是什么

bash - 如何执行以引号和星号存储为字符串的bash命令