我正在寻找一种解决方案,以确保 =
字符不用于表单中的任何输入。
<form>
<input name="email" type="email" placeholder="Email" required="">
<input name="last name" type="text" placeholder="Last Name">
<input name="idnumber" type="number" placeholder="ID Number">
</form>
我现在电子邮件和号码的类型字段应该可以防止这种情况发生,但我不确定这是否可以被黑客入侵。所以也许也对这些进行一些验证
我认为正则表达式可能是答案,它几乎可以正常工作。只需要调整一下(两个结果都应该只显示文本“test1”和“test2”,= 被剥离) https://regex101.com/r/faYiuB/1/
是否可以像我下面的第一次尝试那样使用正则表达式将其合并到输入字段中?
<input type="text" pattern="^[^\=]" required>
https://css-tricks.com/form-validation-part-1-constraint-validation-html/
最佳答案
您可以在 type="email"
和 type="text"
中使用 [^=]+
模式作为 pattern 属性正则表达式不适用于 type="number"
字段(并且您不能键入或粘贴 =
到数字字段中):
<form>
<input name="email" pattern="[^=]+" type="email" placeholder="Email" required="">
<input name="last name" pattern="[^=]+" type="text" placeholder="Last Name">
<input name="idnumber" type="number" placeholder="ID Number">
<input type="Submit">
</form>
pattern="[^=]+"
转换为 /^(?:[^=]+)$/
正则表达式(使用 u
Chrome 和 FireFox 中的修饰符)并匹配包含 1 个以上字符而不是 =
的字符串。
关于javascript - 确保从未使用表单输入字段开头的 =,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51071471/